根据条件的列数
问题描述:
我创建了一个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, category,
(select count(distinct name) from section where category = 'A' and id = 1)
FROM section
GROUP BY name, velocity
[Conditional Count on a field]可能重复(http://*.com/questions/1288058/conditional-count-on-a-field) – C8H10N4O2