簡體   English   中英

MySQL:同一日期的多行僅獲取一行?

[英]MySQL: Getting only one row for multiple rows with the same date?

我有一個MySQL查詢,它返回幾行,其中一列帶有日期,這就是我的查詢:

select * from (big subselect) sub

例如,我得到6行,而這6行中的一列有一個日期,該列稱為my_date。 有沒有辦法只獲取那些日期不是同一天的行? 例:

29.10.2012 01:51:10
29.10.2012 01:51:10
29.10.2012 01:51:10
29.10.2012 02:43:18
29.10.2012 02:43:18
29.10.2012 02:43:18

->我只需要其中一行,因為所有6行都是同一天。

29.10.2012 01:51:10
30.10.2012 01:51:10 --> different
29.10.2012 01:51:10
29.10.2012 02:43:18
29.10.2012 02:43:18
29.10.2012 02:43:18

->我要2行,因為有2天不同

my_date列不是每一行中唯一的一列,但我希望將其作為條件。 我該怎么辦?

謝謝!

您只需要選擇這些MAX(my_date) ,但是您需要按其他MAX(my_date)分組。 像這樣:

select s1.*
from sub as s1
INNER JOIN
(
   SELECT MAX(my_date) AS MaxDate, SomeId
   FROM sub
   GROUP BY someId
) AS s2 ON s1.my_date = MaxDate AND s1.SomeId = s2.SomeId;

您可以像這樣僅將日期分組:

SELECT * FROM sub
GROUP BY DATE_FORMAT(my_date,'%Y-%m-%d')

看到這個SQLFiddle

結果:

| ID |                        MY_DATE |
---------------------------------------
|  1 | October, 29 2012 01:51:10+0000 |
|  2 | October, 30 2012 01:51:10+0000 |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM