【问题标题】:Column count based on a condition基于条件的列数
【发布时间】:2016-01-15 03:51:54
【问题描述】:

我创建了一个如下所示的 oracle 查询,查询工作正常 但问题是我想要多一列,它是名称的计数,类别应该是 A,id 应该是 1

SELECT name, velocity, COUNT(*) AS count, category FROM section GROUP BY name, velocity

谁能告诉我一些解决方法

【问题讨论】:

标签: oracle count


【解决方案1】:
SELECT name, velocity, COUNT(*) AS count, 
COUNT(CASE WHEN category = 'A' AND id = 1 THEN 1 END)
FROM section 
GROUP BY name, velocity

这应该可行。

如果记录不满足条件则返回NULL,count跳过NULL字段。

【讨论】:

    【解决方案2】:

    类似这样的:

    SELECT name, velocity, COUNT(*) AS count, 
    SUM(CASE WHEN category = 'A' AND id = 1 THEN 1 ELSE 0 END)
    FROM section 
    GROUP BY name, velocity
    

    【讨论】:

    • 你忘记了id条件
    【解决方案3】:
    SELECT name, velocity, COUNT(*) AS count, category, 
           (select count(distinct name) from section where category = 'A' and id = 1)
    FROM section 
    GROUP BY name, velocity
    

    【讨论】:

      猜你喜欢
      • 2022-11-27
      • 2013-02-01
      • 2021-11-16
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 2017-08-18
      相关资源
      最近更新 更多