![]() |
1
2
计数不是一个总和。。您的第一个查询不正确,因为不返回正确的行数。。但不为空的行的总数是真是假 如果需要筛选计数,则必须使用where条件(作为第二个查询),否则必须在sum()函数中使用if或select大小写,例如:
或者如果你想数数。。使用空而不是0分钟计数
|
![]() |
2
4
如果要查看发生了什么,请运行查询:
您将看到people中的每一行都会得到一个结果,值为0或1(或True/False)。您选择的是每一行是否state='CA',这些结果的数量将与行的数量一样多。 不能在语句中约束COUNT语句,必须通过WHERE子句来实现,如第二个示例所示。 |
![]() |
3
1
试试这个-:
|
![]() |
4
1
如果您使用
|
![]() |
5
1
在第一个查询中,它将值“CA”分配给所有1000行的列状态,而不是筛选值。那就是
鉴于
有一个运行查询的序列。它开始于
|
![]() |
6
1
回答实际的问题-为什么你得到1000?我猜您的数据库中有1000行,或者至少有1000行state不为空。Count将返回()中的内容不为空的行数,正如您的一条评论所说,()中的部分将返回true或false,两者都不为空,因此将对它们全部进行计数。你的第二个例子当然是正确的方法。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 4 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 4 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 4 月前 |
![]() |
Sax · 规范化Google表格(第一步) 4 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |