[英]Oracle SQL group by query
我有以下數據
Name ID Action Action_Date
A123 234 ADD 21/05/2016
A123 234 DELETE 25/05/2016
A124 235 ADD 21/05/2016
A125 236 DELETE 25/05/2016
現在我試圖得到低於結果
Name ID Date_Added Dated_Deleted
A123 234 21/05/2016 25/05/2016
A124 235 21/05/2016 NULL
A125 236 NULL 25/05/2016
我知道我需要按名稱和ID分組,但還不太了解如何獲得所需的輸出。 請幫忙
當您嘗試展平數據時,它稱為PIVOT。 如果您使用的是Oracle,則可以使用具有該名稱的關鍵字,但是我更喜歡有條件匯總的舊方法(@Prdp在評論中提到)。 該代碼將非常簡單。
SELECT t.name
,t.id
,MAX(CASE WHEN t.action = 'ADD' THEN t.action_date END) AS date_added
,MAX(CASE WHEN t.action = 'DELETE' THEN t.action_date END) AS date_deleted
FROM your_table t
GROUP BY t.name
,t.id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.