繁体   English   中英

SQL 查询旋转或分组

[英]SQL Query pivoting or grouping

我在进行 SQL 查询以整理数据表时遇到问题,但不知道如何处理它。 也就是说,我有一个如下所示的数据表:

在此处输入图像描述

我想这样查询:

在此处输入图像描述

为了检索初始数据表,我使用以下查询:

SELECT top 100 replace(convert(varchar, db1.Create_On,101),'/','') + replace(convert(varchar, db1.Create_On,108),':','') as 'Creation_Date', db1.PSP, db1.Create_on, db1.Create_by, db1.Language, db1.Name, db1.FirstName, db2.*
from db1 INNER JOIN
     db2
     ON (db1.IB_H_Id = db2.IB_H_Id) AND (db1.Create_on = db2.Create_on) AND (db1.Create_by = db2.Create_by)
WHERE (((db1.IB_H_Id)='CLA_052') AND ((db1.SendMail) Like '') AND ((db2.Answer_Char) = 'Email') OR ((db2.Answer_Char) = 'Card'))
order by [Creation_Date];

现在我不知道如何使用 group by 或 pivot 来处理它。感谢您的帮助!

您可以使用条件聚合:

with t as (
      <your query here>
     )
select column1,
       max(case when column2 = 1 then column3 end) as col2_1,
       max(case when column2 = 2 then column3 end) as col2_2,
       max(case when column2 = 3 then column3 end) as col2_3
from t
group by column1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM