我有一个 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)
,但您将需要按其他一些字段进行分组。像这样的事情:
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;
关于MySQL:对于具有相同日期的多行只获取一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15020385/