【发布时间】:2016-01-15 03:51:54
【问题描述】:
我创建了一个如下所示的 oracle 查询,查询工作正常 但问题是我想要多一列,它是名称的计数,类别应该是 A,id 应该是 1
SELECT name, velocity, COUNT(*) AS count, category FROM section GROUP BY name, velocity
谁能告诉我一些解决方法
【问题讨论】:
我创建了一个如下所示的 oracle 查询,查询工作正常 但问题是我想要多一列,它是名称的计数,类别应该是 A,id 应该是 1
SELECT name, velocity, COUNT(*) AS count, category FROM section GROUP BY name, velocity
谁能告诉我一些解决方法
【问题讨论】:
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字段。
【讨论】:
类似这样的:
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
【讨论】:
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
【讨论】: