T-SQL中的count CASE WHEN和count(*)冲突

拉基蛋糕

尝试对满足WHERE条件的所有记录进行计数,但也对满足另一条件的记录的子集进行计数(列大于1的情况)

它看起来像这样:

SELECT 
  COUNT(*) AS BOOKINGS#, 
  Count(Case WHEN mNumber > 1 THEN 1 ELSE 0 END) AS  MEMBERBOOKINGS 

我的问题是两个列都返回相同的结果(这是较小的结果(情况))。

我敢肯定这很简单,但我在这里苦苦挣扎。

w

COUNT与表达式一起使用时,它返回不为null的值的数量,并且由于0不为null,因此将对其进行计数。

在文档中,这表示为:

COUNT(ALL expression)计算组中每一行的表达式,并返回非空值的数量。

(ALL是默认选项)。

解决方案是将case表达式更改为:

COUNT(CASE WHEN mNumber > 1 THEN 1 ELSE NULL END)
-- the else branch is redundant and could be removed, but I wanted to be explicit here.

sum改为使用

SUM(CASE WHEN mNumber > 1 THEN 1 ELSE 0 END)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache Pig中是否有多个COUNT(DISTINCT CASE WHEN ...)语句?

来自分类Dev

SQL CASE WHEN或IF ELSE IF

来自分类Dev

Cassandra count use case

来自分类Dev

T / SQL查询中end = 1的Case语句

来自分类Dev

从CASE语句或T-SQL中的Function获得更好的性能

来自分类Dev

T-SQL CASE WHEN语句之间不起作用

来自分类Dev

SQL中的自引用CASE WHEN子句

来自分类Dev

如何在SQL Server中一起使用count,case和Distinct

来自分类Dev

使用CASE为SQLite中的COUNT语句设置条件

来自分类Dev

Oracle SQL:组合两个CASE WHEN语句时使用COUNT()> 1

来自分类Dev

T SQL CAST CASE语句

来自分类Dev

Count中的SQL别名

来自分类Dev

SQL Count Case NOT COUNT多个字符串

来自分类Dev

在CASE WHEN中一次使用COUNT

来自分类Dev

从case语句oracle sql中按Count捕获条件语句组

来自分类Dev

SQL Server中的CASE和GROUP BY

来自分类Dev

SELECT CASE T-SQL中的计算列

来自分类Dev

SQL中的Count()计算

来自分类Dev

在Drupal中的SQL COUNT

来自分类Dev

从CASE语句或T-SQL中的Function获得更好的性能

来自分类Dev

SQL Server:COUNT(DISTINCT(CASE))

来自分类Dev

带有COUNT或SUM问题的SQL CASE

来自分类Dev

如何在SQL Server中一起使用count,case和Distinct

来自分类Dev

SQL查询中的CASE WHEN语句示例

来自分类Dev

WHEN内的SQL Case

来自分类Dev

R 相当于 count(case when) group by in sql

来自分类Dev

在postgresql sql中结合count和max

来自分类Dev

在 MariaDB 10.2.15 中使用 COUNT CASE WHEN MONTH 语句

来自分类Dev

t-sql 中 COUNT() 的返回类型是什么?