查询由组和where子句,保持空值
我有如下表一表:查询由组和where子句,保持空值
项目,产品,状态
状态可能是正在进行中,已完成,失败
我想三个不同的表格,列出每个产品的特定状态的项目数量。我可以通过计数项目,分组条件和状态条件来做到这一点。和得到的东西,如:
对于项目状态=进行中:
Product Items
A 10
B 20
和儿子。
但是,如何保留count(items)= 0的产品?如果我把条件放在哪里,这些产品会被过滤掉。
我怎样才能像
Product Items
A 10
B 20
C 0
D 0
我使用Oracle SQL
这是我使用查询:
select product, count(item) from item_main
where status = 'In Progress'
group by product;
SELECT Product,
COUNT(CASE status WHEN 'In Progress' THEN 1 END) AS Items
FROM your_table
GROUP BY Product
'select product as label, count(case STATUS where'In Progress'then 1 else 0 end)as item, from item_main group by product; ' - 不起作用。 –
不知何故抛出错误:缺少正确的缺陷。我在这里错过了什么? –
在“'as items,from'”中有一个额外的逗号,并且你不希望'else 0'部分或者省略它或者使用'else NULL'(因为零是可数的,但是NULL不是)。 – MT0
SELECT a.product, count(b.product) from
(select product from item_main group by product) a LEFT JOIN item_main b on a.product = b.product
where b.status = 'In progress'
可以显示原始表以及? –
原始表格包含更多其他专栏,不幸的是我不确定我可以将它放在这里,因为它是公司数据。但基本上,我只是想要每个类别的项目总数,对于每个项目状态。 –
我用我使用的查询更新了我的问题。在此查询中,我错过了类别,其中count(item)= 0 –