簡體   English   中英

使用Group By子句查詢

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

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