Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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 Server_Group By_Count_Nested - Fatal编程技术网

Sql 嵌套选择,计数不同,分组方式不同

Sql 嵌套选择,计数不同,分组方式不同,sql,sql-server,group-by,count,nested,Sql,Sql Server,Group By,Count,Nested,因此,我试图从同一个表中得到两组或两个结果,并用第三列进行分组,最好让我的示例来解释 SELECT (SELECT COUNT(DISTINCT id) FROM Database WHERE Status NOT LIKE 'closed') AS ColumnA, (SELECT COUNT(DISTINCT id) FROM Database WHERE Status NOT LIKE 'closed' AND Datevalue <= getdat

因此,我试图从同一个表中得到两组或两个结果,并用第三列进行分组,最好让我的示例来解释

SELECT
  (SELECT COUNT(DISTINCT id)
  FROM Database
    WHERE Status NOT LIKE 'closed') AS ColumnA,

  (SELECT COUNT(DISTINCT id)
  FROM Database
    WHERE Status NOT LIKE 'closed' AND Datevalue <= getdate()) AS ColumnB

Group By ColumnC
现在我知道这不起作用,但它解释了我想要什么。如果我不使用group by,那么我得到的是整个数字,但我希望它们按另一列进行分组

心灵正在融化,准备开悟。

这就是你想要的吗

select columnC,
       count(distinct case when Status <> 'closed' then id end) as columnA,
       count(distinct case when Status <> 'closed' and datevalue <= getdate() then id end) as columnb
from database  -- a very curious name for a table
group by ColumnC;
试试这个

    SELECT ColumnC,
    COUNT(DISTINCT CASE WHEN Status NOT LIKE 'closed' THEN id END) as  ColumnA,
    COUNT(DISTINCT CASE WHEN Status NOT LIKE 'closed' AND  Datevalue <= getdate() THEN id END) as  ColumnB
    FROM mydatabase
    GROUP BY ColumnC

先生,你真是个味儿,我已经敲了将近一个小时的脑袋了。非常感谢。我现在将对此进行研究,以确保我理解它,以备将来使用。干杯。这个答案可能更符合你想要的,而不是嵌套SELECT语句,你可以做一个不同的计数。。。有条件的