[英]SQL `GROUP BY` and `MAX()`
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
這是一種方法:
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.