Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于多准则的SQL计数_Sql_Mysql_Aggregate Functions - Fatal编程技术网

基于多准则的SQL计数

基于多准则的SQL计数,sql,mysql,aggregate-functions,Sql,Mysql,Aggregate Functions,我以前写过SQL count语句,但我需要编写一个查询,返回一个条件的两组计数值。原始查询统计一家公司拥有无效信息的人数,罚款,效果很好。我现在需要扩展这个查询,以便它执行上述操作,但也包括总人数 举个例子,我会得到a公司10个病人中有5个病人的结果 我在第一次查询公司id时使用了GROUPBY 是否可以包含2个计数值 编辑1 可能应该说,我使用的是MySQL。您需要在select子句中的case语句中,而不是在where子句中使用无效计数,如果没有表结构,则假设: SELECT t.com

我以前写过SQL count语句,但我需要编写一个查询,返回一个条件的两组计数值。原始查询统计一家公司拥有无效信息的人数,罚款,效果很好。我现在需要扩展这个查询,以便它执行上述操作,但也包括总人数

举个例子,我会得到a公司10个病人中有5个病人的结果

我在第一次查询公司id时使用了GROUPBY

是否可以包含2个计数值

编辑1
可能应该说,我使用的是MySQL。

您需要在select子句中的case语句中,而不是在where子句中使用无效计数,如果没有表结构,则假设:

  SELECT t.company_id,
         SUM(CASE WHEN t.isinvalid = 1 THEN 1 ELSE 0 END) AS numInvalid,
         COUNT(*) AS total
    FROM YOUR_TABLE t
GROUP BY t.company_id

根据您的RDBMS,有不同的解决方案。在SQL Server/Oracle中-可以使用OVER()子句

例如:

选择count(PersonID)over()作为TotalCount,count(PersonID)over(按公司ID划分)
从表中

解决了这个问题,根据这些结果进行左连接和计数。

您可能应该发布您的查询和/或表结构。啊,听起来很实用,case语句?@user275074:MySQL不支持分析函数。