簡體   English   中英

Oracle SQL按查詢分組

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

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