【问题标题】:Show results of count condition in separate columns in Oracle SQL table在 Oracle SQL 表的单独列中显示计数条件的结果
【发布时间】:2021-03-04 09:27:54
【问题描述】:

我有一个表,我使用 GROUP BY 来生成单独列中的条件计数,具体取决于表中是否使用多种传播方法列出了调用信。

 SELECT p.CallLetters, COUNT(p.PropMethod)
 FROM logpropmethod p
 GROUP BY p.CallLetters
 HAVING COUNT(p.PropMethod) > 1

这会产生以下结果:

 WIBC   3
 WQLZ   2
 WWVR   2
 CIBX   2
 WTTS   3
 WFBQ   2
 WCBH   2
 WKSV   2

我希望能够在 GROUPBY 结果的不同列中列出传播方法。只有三种不同的传播方法,因此我设想将结果列在 PROPMETHOD1、PROPMETHOD2、PROPMETHOD3 列中。我无法完全弄清楚如何做到这一点而不会导致“不是 GROUP BY 表达式”错误。

【问题讨论】:

    标签: sql oracle count pivot aggregate-functions


    【解决方案1】:

    我想你想要条件聚合:

    SELECT CallLetters, COUNT(*) as total
        SUM(CASE WHEN PropMethod = 'PROPMETHOD1' THEN 1 ELSE 0 END) as PROPMETHOD1,
        SUM(CASE WHEN PropMethod = 'PROPMETHOD2' THEN 1 ELSE 0 END) as PROPMETHOD2,
        SUM(CASE WHEN PropMethod = 'PROPMETHOD3' THEN 1 ELSE 0 END) as PROPMETHOD3
    FROM logpropmethod
    GROUP BY CallLetters
    HAVING COUNT(*) > 1
    

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2022-01-07
      • 2017-12-07
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多