【问题标题】:Columns created by case statement do not group by when use partition by使用 partition by 时,case 语句创建的列不分组
【发布时间】:2017-10-22 15:20:06
【问题描述】:

我正在报告以前遇到相同问题但已解决的问题here is the link to question,

在这里,我遇到了同样的问题,在这里几乎没有什么变化,我还需要分区

CASE WHEN MP.PT = 'OPD' THEN COUNT(MP.YN) OVER (PARTITION BY  MP.PT,mp.tti ORDER BY  mp.tti)   END AS OPD,
CASE WHEN MP.PT = 'IPD' THEN COUNT(MP.YN) OVER (PARTITION BY  MP.PT,mp.tti ORDER BY  mp.tti)   END AS IPD,
CASE WHEN MP.PT = 'A&E' THEN COUNT(MP.YN) OVER (PARTITION BY  MP.PT,mp.tti ORDER BY  mp.tti)   END AS EAC

结果应该在同一行,因为它们是单选的一部分,但它出现在多行中并且不聚合

【问题讨论】:

    标签: sql-server pivot case


    【解决方案1】:

    试试这个:

    SUM(IIF(MP.PT = 'OPD', 1, 0)) OVER (PARTITION BY mp.tti)  AS OPD,
    SUM(IIF(MP.PT = 'IPD', 1, 0)) OVER (PARTITION BY mp.tti)  AS IPD,
    SUM(IIF(MP.PT = 'A&E', 1, 0)) OVER (PARTITION BY mp.tti)  AS EAC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多