我有一个包含以下列的表:
user_id int
,some_dt datetime
,count 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}}值。有没有办法在没有多个查询的情况下执行此操作?
答案 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');