我有桌子组,
ID NUMBER
STATUS VARCHAR2(20 BYTE)
我能够算出以下状态数。
select g.status, count(*) from groups g group by g.status;
STATUS COUNT(*)
-------------------- ----------
OK 2
NOK 1
我还有另一种状态,例如“待审核,已拒绝”。但是表中没有项目,但是我希望它们显示为零计数,如下所示。
STATUS COUNT(*)
-------------------- ----------
OK 2
NOK 1
PENDING 0
REJECTED 0
SQL语句将使之成为可能?
试试这个
SELECT A.status, COUNT(DISTINCT G.ID) statusCnt
FROM (SELECT 'OK' status FROM DUAL
UNION
SELECT 'NOK' status FROM DUAL
UNION
SELECT 'PENDING' status FROM DUAL
UNION
SELECT 'REJECTED' status FROM DUAL
) AS A
LEFT JOIN groups G ON A.status = G.STATUS
GROUP BY A.status;
问题内容: 为什么不能在SQL中使用?如要计算所有不同的行? 问题答案: 尽管我强烈建议您重新考虑使用的任何查询。在大多数情况下,更合适(更快)。 编辑: 阅读问题注释后,我应该指出,您 绝不 应该要求DBMS做比实际需要做的更多的工作来获得结果。如果您事先知道表中没有任何重复的行,请不要使用。
问题内容: 好的,我试图查看每个供应商提供了多少个产品(“产品”和“供应商”为单独的表格)。我希望将结果与公司名称和公司提供的产品数量一起显示。我不确定该如何设置。 到目前为止,我有: 我不确定如何使每个公司的ProductName计数。如果您能为我提供任何帮助,我将不胜感激。 问题答案: 您所缺少的只是GROUP BY子句: 使用LEFT {OUTER} JOIN意味着如果某些供应商不提供任何产
问题内容: 我有一个数据集,,和。每个资源可以被多个项目利用。 我想统计每个季度使用资源的项目数量。 因此,如果项目在特定年份的Q1开始并在当年的Q3结束,而project2在Q2开始并在Q3结束,那么我想为Q2计数2个项目,因为在Q1期间,project1和project2都处于活动状态。 这是我的数据集: 这是我要寻找的结果: 问题答案: 使用理货单: 使用from的日期,生成所有季度及其开始
我有一个我认为是完全琐碎的查询-插入值到一个表中,如果一个值与匹配的ID不存在: 我在where语句周围得到一个错误。为什么?我如何实现我的目标?
问题内容: 我有一张表,我需要在一个语句中计算两个具有不同条件的聚合函数。我怎样才能做到这一点? 伪代码如下: 问题答案: 这与tombom的答案相同,但是具有SQL Server语法:
问题内容: 我有一个Map(String,String),我想找到一个条目和Map的内存大小。我读的地方,仪表可能是有用的(仪器)。有人有主意吗? 提前致谢。 问题答案: 对于64位JVM,空白实例应为24字节,对于32位JVM,空白实例应为12字节。这是我发现有用的@PeterLawrey的技术,基于MemoryUsageExamplesTest: