我是java和sql的新手,被一个混淆了我的数据的查询难住了。我有一个包含3列的简单表(idi(integer)、column1(bool)、column2(bool))。
我提出了一些查询,这些查询将成功,但数据将在两个布尔列之间复制。如果我从布尔值中选择了*所有的数据都是正确的,但是当我写一个查询来计算每一列的总数时,结果是一样的?
当我运行这个查询时,我得到了正确的结果,如图所示;
select * from booleans order by idi
但是,当我尝试计数和分组时,两列都有相同的数据。每列中的一列应该有一个数字,另一列应该有一个0。以下是结果的代码和图片:
select idi, count(column1) as "Column 1", count(column2) as "Column2"
from booleans
group by idi
我将感谢任何理论,为什么这是显示不正确的汇总表。
1条答案
按热度按时间daolsyd01#
为了只数
true
值,不包括false
你能做的:详细说明:
count(*)
统计有多少个非空值。对于此函数,值是否为true
或者false
.