Sql 计算列的true和false数

Sql 计算列的true和false数,sql,oracle,Sql,Oracle,我有一个疑问: SELECT * FROM {Products} 但是Products表有一个布尔列“IsInStock”,我想计算IsInStock为true的产品数量,以及InStock为false的产品数量,以便查询结果包含此信息。您知道如何使用SQL正确地实现这一点吗?您可以尝试以下方法- select isinstoct, count(*) from tablename group by isinstoct 你确定你在使用Oracle吗?布尔值作为表的列是无效的数据类型。 SELE

我有一个疑问:

SELECT * FROM {Products}

但是Products表有一个布尔列
“IsInStock”
,我想计算
IsInStock
为true的产品数量,以及
InStock
为false的产品数量,以便查询结果包含此信息。您知道如何使用SQL正确地实现这一点吗?

您可以尝试以下方法-

select isinstoct, count(*)
from tablename
group by isinstoct

你确定你在使用Oracle吗?布尔值作为表的列是无效的数据类型。
SELECT SUM(CASE WHEN [IsInStock]='True' THEN 1 ELSE 0 END) AS [InStock],
       SUM(CASE WHEN [IsInStock]='False' THEN 1 ELSE 0 END) AS [OutOfStock]
FROM [Prodcuts]