首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于将行数转换为列的SQL查询

用于将行数转换为列的SQL查询
EN

Stack Overflow用户
提问于 2020-07-10 22:03:51
回答 2查看 45关注 0票数 0

我编写了以下查询-

代码语言:javascript
复制
SELECT element_name,
element_start_date,
element_end_date,
period_name,
element_classfication,
Person_number
from per_elements
where element_name in ('Employer Contribution','HSA Employee Contribution')

给出以下输出

代码语言:javascript
复制
Element_name                element_start_date          element_end_date            Period_name             element_classfication   Person_number   Amount                      
Employer Contribution       6/14/2020                   6/27/2020                   14 2020 Biweekly        Liability               100             38
HSA Employee Contribution   6/14/2020                   6/27/2020                   14 2020 Biweekly        Deduction               100             19

我是否可以更改上面的查询,以便获得以下输出-

代码语言:javascript
复制
element_start_date    element_end_date   Period_name        Person_number       Employer contribution amount    Employee contribution amount                        
6/14/2020             6/27/2020         14 2020 Biweekly    100                 38                              19  

我是否可以将单独的行转换为列,以便数量可以并排反映。

EN

回答 2

Stack Overflow用户

发布于 2020-07-10 22:07:58

您可以按如下方式使用条件聚合:

代码语言:javascript
复制
SELECT element_start_date,
       element_end_date,
       period_name,
       Person_number,
       max(case when element_name = 'Employer Contribution' then amount end) 
         as employer_contribution_amount,
       max(case when element_name = 'HSA Employee Contribution' then amount end) 
         as employee_contribution_amount
    from per_elements
   where element_name in ('Employer Contribution','HSA Employee Contribution')
group by element_start_date,
         element_end_date,
         period_name,
         Person_number;
票数 0
EN

Stack Overflow用户

发布于 2020-07-10 22:20:06

代码语言:javascript
复制
select *
from 
   (
   select Element_name,element_start_date,element_end_date,Period_name,Person_number,Amount
   from per_elements
   where element_name in ('Employer Contribution','HSA Employee Contribution')
   )
pivot (
  sum(amount)
  for Element_name in ('Employer Contribution','HSA Employee Contribution')
)
/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62836002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档