簡體   English   中英

SQL`GROUP BY`和`MAX()`

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM