繁体   English   中英

Sql Pivot通过分组两列

[英]Sql Pivot By Grouping two columns

萨满周刊访问派对

我在这里想要实现的是使用相同的LedId_Sman和LedId_Party对行进行分组,然后在一行中调用所访问的天数视图。

我的实际表

LedId_Party LedId_Sman  VisitDay
----------- ----------- --------
426         296         3
426         296         6
441         296         2

查询我正在使用

SELECT LedId_Party, LedId_Sman,[1]as Sun,[2]as Mon,[3] as Tue,[4] as Wed,[5] as Thu,[6] as Fri,[7] as Sat
FROM dbo.tbl_WeeklyVisit

Pivot(
Count(VisitDay) 
For VisitDay in
([1],[2],[3],[4],[5],[6],[7]
))AS PiviotTable

这是我目前得到的

LedId_Party LedId_Sman  Mon Tue Wed Thu Fri Sat Sun
        426       297   0   0   0   0   1   0   0
        426       297   0   1   0   0   0   0   0

这就是我想要的输出。

LedId_Party LedId_Sman  Mon Tue Wed Thu Fri Sat Sun
        426       297   0   1   0   0   1   0   0

我对SQL非常新,所以对它如何工作的见解将非常有帮助和赞赏。

您可能在数据中有额外的列,这些列会产生额外的行。 使用pivot时,最好只有一个子查询,只包含pivot中引用的列:

SELECT LedId_Party, LedId_Sman, [1] as Sun,[2] as Mon, [3] as Tue,
       [4] as Wed, [5] as Thu, [6] as Fri, [7] as Sat
FROM (SELECT LedId_Party, LedId_Sman, VisitDay
      FROM dbo.tbl_WeeklyVisit
     ) wv
PIVOT(Count(VisitDay) 
      For VisitDay in ([1], [2], [3], [4], [5], [6], [7]
                      )
     ) as PiviotTable

暂无
暂无

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

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