Language Date
----------------------
HTML 2017-03-15
HTML 2017-03-15
HTML 2017-03-19
JavaScript 2017-03-12
JavaScript 2017-03-17
PHP 2017-03-15
PHP 2017-03-17
PHP 2017-03-18
PHP 2017-03-18
我需要一个按language
分组的结果,第二列是最新日期条目中每个语言行的COUNT()
。并非所有语言都有相同日期的条目。
对于上表,结果应为:
HTML 1
JavaScript 1
PHP 2
答案 0 :(得分:3)
这是一种方法:
select language, count(*)
from t
where t.date = (select max(t2.date)
from t t2
where t2.language = t.language
)
group by language;
这使用相关子查询匹配每种语言的最新日期。还有其他方法,例如使用join
或:
select language, count(*)
from t
where (t.language, t.date) in (select t2.language, max(t2.date)
from t t2
group by t2.language
)
group by language;