Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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计数_Sql_Sql Server - Fatal编程技术网

使用SQL的多个查询进行多个SQL计数

使用SQL的多个查询进行多个SQL计数,sql,sql-server,Sql,Sql Server,我需要做多次计数。我有6个专栏。大概是这样的: SELECT COUNT(C.ID) as 'Column 1', COUNT(C.ID) as 'Column 2', COUNT(C.ID) as 'Column 3', COUNT(C.ID) as 'Column 4', FROM CONTACT C 我需要能够使用不同的查询运行不同的计数,但不确定如何在一个结果中应用查询计数。您需要运行子查询,或者至少这是一种方式: SELECT ( SELECT COUNT(c.ID) FR

我需要做多次计数。我有6个专栏。大概是这样的:

SELECT 
COUNT(C.ID) as 'Column 1',
COUNT(C.ID) as 'Column 2',
COUNT(C.ID) as 'Column 3',
COUNT(C.ID) as 'Column 4',
FROM CONTACT C

我需要能够使用不同的查询运行不同的计数,但不确定如何在一个结果中应用查询计数。

您需要运行子查询,或者至少这是一种方式:

SELECT
    ( SELECT COUNT(c.ID) FROM Contact c WHERE ... ) AS Column1,
    ( SELECT COUNT(c.ID) FROM Contact c WHERE ... ) AS Column2

如果我明白你想做什么,我通常会这样做:

SELECT 
SUM(CASE WHEN Condition1 THEN 1 END) AS Column1,
SUM(CASE WHEN Condition2 THEN 1 END) AS Column2
FROM Contact

这里有几个选项

1) 将子查询用作@TheSpolution proposed

2) 使用联合

   SELECT 'A' NAME, COUNT(c.ID) [COUNT] FROM Contact c WHERE ... 
   UNION
   SELECT 'B' NAME, COUNT(c.ID) [COUNT] FROM Contact c WHERE ... 
3) 如果它实际上是相同的子集,但您希望基于某些条件求和,那么在计数内使用case

 SELECT sum(case ... when ... then 1 else 0 end) counta,
        sum(case ... when ... then 1 else 0 end) countb
 FROM ... WHERE ...

将varchar值“London”转换为数据类型int时,转换失败。
-我在使用UNION时得到此结果…
子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。
@PriceCheaperton,您使用了什么
WHERE
子句?