【问题标题】:SQL Pivot function to group rowsSQL Pivot 函数对行进行分组
【发布时间】:2014-05-19 01:13:41
【问题描述】:

我正在尝试使用 PIVOT 转置表格。 这是我目前的代码:

select distinct to_date,[syst1],[syst2],[syst3]
from MyTable
pivot
(
    count(systems)
    for systems
    in ([syst1],[syst2],[syst3])

)
as PivotTable
order by to_date

这是我得到的结果:

我想要的是将第 33&34 行、第 35&36 行和第 37&38 行组合在一起 使它们看起来像这样:

【问题讨论】:

    标签: sql sql-server pivot pivot-table


    【解决方案1】:

    你的支点应该做你想做的事。 . .除非to_date 有时间组件。这能解决问题吗?

    select to_date, [syst1], [syst2], [syst3]
    from (select cast(to_date as date) as to_date, systems
          from MyTable
         ) mt
    pivot (count(systems)
           for systems in ([syst1], [syst2], [syst3])
          ) as PivotTable
    order by to_date;
    

    【讨论】:

    • 修复它,但不是因为CAST,没有时间组件,而是因为子查询。不知道为什么会这样。谢谢
    • @user2343837 。 . . SQL Server 使用所有非聚合列来定义透视后的每一行。子查询仅选择您想要的子集。
    猜你喜欢
    • 2017-05-02
    • 2012-01-23
    • 2021-11-23
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    相关资源
    最近更新 更多