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语句,你可以做一个不同的计数。。。有条件的