[英]Query with Group By clause
我的表具有last_updated_date,department和其他一些字段,我想編寫一個查詢獲取所有列,位於每個部門的最高last_updated_row中。 我試圖用group by子句編寫,但沒有得到所有行。
id name department last_updated_date
1 Manu Maths 22/01/2019
2 Anil Maths 23/01/2019
3 Kala Maths 24/01/2019
4 Deepak Science 22/02/2019
5 Krish Science 23/02/2019
6 Kannan Science 24/02/2019
7 Sai English 02/12/2018
8 Sunil English 03/12/2018
9 Mala English 04/12/2018
10 Kola English 04/12/2018
我想回來
3 Kala Maths 24/01/2019
6 Kannan Science 24/02/2019
9 Mala English 04/12/2018
or
10 Kola English 04/12/2018
如果兩個last_updated_date相同,則查詢應檢索last_updated_date中的任何一個。
在這里,我將時間戳記用於日期字段。 所以我的last_modified_date看起來像2019-02-07 17:26:49.209
提前致謝
使用row_number()
select * from
(
select *,row_number() over(partition by department order by last_updated_date desc) as rn from tablename
)A where rn=1
或者您可以使用相關子查詢
select * from tablename a
where last_updated_date in (select max(last_updated_date) from tablenamae b where a.department=b.department)
在Postgres中,使用distinct on ()
select distinct on (department) *
from the_table
order by department, last_updated desc;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.