繁体   English   中英

使用 CASE 表达式透视数据

[英]Pivoting data with CASE expression

我有以下查询,它获取商店、周数和售出产品的总和:

select *
from 
(
  select store, week, xCount
  from yt
) src
pivot
(
  sum(xcount)
  for week in ([1], [2], [3])
) piv;

是否可以使用 CASE 表达式获得相同的结果?

您可以使用条件聚合 pivot 如下:

select 
    store, 
    sum(case when week = 1 then xcount else 0 end) week1,
    sum(case when week = 2 then xcount else 0 end) week2,
    sum(case when week = 3 then xcount else 0 end) week3
from yt
group by store

我倾向于使用条件聚合而不是特定于数据库的pivot语法:

  • 条件聚合比pivot更灵活

  • 该语法适用于大多数数据库,因此更便携

  • 性能通常相当

暂无
暂无

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

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