如何选择最新的分数'从表格中为每个不同的网站'存在吗?
例如:
site | date | score
a | 20140101 | 10
a | 20140102 | 8
b | 20140103 | 11
b | 20140202 | 9
我想为a
和b
返回一个结果,但只返回其最新条目(按日期)。
a | 20140102 | 8
b | 20140202 | 9
我知道如何按网站分组,或选择不同的网站,但不知道如何将其缩小到最新日期。
编辑:对于数千个不同的网站,这应该是动态的。
答案 0 :(得分:3)
你可以用联盟
来做(SELECT
site,date,score
FROM
`table`
WHERE
site = 'a'
ORDER BY date DESC
LIMIT 0,1)
UNION
(SELECT
site,date,score
FROM
`table`
WHERE
site = 'b'
ORDER BY date DESC
LIMIT 0,1)
如果你不想写UNION
SELECT
t.site, t.date, t.score
FROM
`table` t
JOIN (
SELECT ti.site,MAX(ti.date) AS dt
FROM `table` ti
GROUP BY ti.site
) t2 ON t2.site = t.site and t2.dt = t.date