Postgresql

group by、order by 並選擇每組中列的最後一個值

  • February 3, 2018

我正在使用 PostgreSQL 9.6。我有一個“事件”表。我需要按“item_id”列分組,然後按每個組中的“日期”列排序,然後選擇每個組中“value_num”列的最後一個值。請幫助我如何做到這一點。

我想你想要一個“每組最大的”查詢。在 Postgres 中實現這一目標的最簡單(但不一定是最有效)的方法是使用**DISTINCT ON**:

select distinct on (item_id)        -- defines the "group"
   item_id, date, value_num        -- show 1 row per group
from 
   events
order by 
   item_id, date desc ;            -- which order to be used

引用自:https://dba.stackexchange.com/questions/196988