Sql 一次统计一个表中的记录数
在一个只有一个查询和多个条件的表中,有没有办法对记录进行计数,这些条件会像这样重叠在一起Sql 一次统计一个表中的记录数,sql,sql-server,Sql,Sql Server,在一个只有一个查询和多个条件的表中,有没有办法对记录进行计数,这些条件会像这样重叠在一起 从条件1所在的表名称中选择@count1=count(1) 从条件1和条件2所在的表_name中选择@count2=count(1) 从条件1、条件2和条件3所在的表_name中选择@count3=count(1) 从条件1和条件2以及条件3和条件4所在的表_name中选择@count4=count(1) 我想在一次查询中获得表_name的所有@count1、@count2、@count3、@count4
从条件1所在的表名称中选择@count1=count(1)
从条件1和条件2所在的表_name中选择@count2=count(1)
从条件1、条件2和条件3所在的表_name中选择@count3=count(1)
从条件1和条件2以及条件3和条件4所在的表_name中选择@count4=count(1)
我想在一次查询中获得表_name的所有@count1、@count2、@count3、@count4,因为该表中的数据包含数百万条记录
可能吗?
谢谢下面是一个我在评论中所指的例子——使用案例陈述(和总结)来获得你想要的结果
SELECT
@count1 = SUM(CASE WHEN condition1 THEN 1 ELSE 0 END),
@count2 = SUM(CASE WHEN condition1 AND condition2 THEN 1 ELSE 0 END),
etc. ...
FROM table_name
您可以为每个条件使用一个CASE语句,在CASE语句中,输出1(如果满足条件)或0(如果不满足条件),然后将每个CASE相加,然后将问题与您正在使用的数据库相加。这个问题一般是关于所有sql数据库的,但我的问题发生在sql Server中谢谢,它可以工作。我不认为这样简单