这个聚合查询是否需要mysql中的子查询?

时间:2016-07-28 19:11:53

标签: mysql

我有一个包含以下列的表:

user_id intsome_dt datetimecount int

这些都不是唯一的密钥。

我正在尝试获取time的{​​{1}}和count值,其中user_id最高。 2016年7月18日,示例查询将如下所示,以获得count 100的最高分数:

user_id

我的问题是,我还希望获得行SELECT MAX(count) FROM tbl WHERE user_id = 100 AND DATE(some_dt) = '2016-07-18'的{​​{1}}值。有没有办法在没有多个查询的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

可以使用having子句

SELECT count, some_dt FROM tbl
WHERE user_id = 100
AND DATE(some_dt) = '2016-07-18'
having count = max(count);

否则你需要一个子查询max

SELECT count, some_dt FROM tbl
WHERE user_id = 100
AND DATE(some_dt) = '2016-07-18'
and count = select (max(count) FROM tbl
            WHERE user_id = 100
            AND DATE(some_dt) = '2016-07-18');