Oracle SQL查询分组
我有以下数据Oracle SQL查询分组,sql,oracle,Sql,Oracle,我有以下数据 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
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分组,但不太了解如何获得所需的输出。请帮助当您尝试展平数据时,它被称为轴。如果您使用的是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;
搜索
条件聚合
并选择一个DBMS,而不是标记所有DBMS。