SQL Server 2000,获取COUNT(DISTINCT ID)的条件是我无法写入我的WHERE?

stc*_*flw 4 sql t-sql sql-server sql-server-2000 distinct

首先,我不想使用"连接",因为这会使我的查询更长且难以阅读.所以我需要做的就是使用相同的SELECT语句.

我在myTable中的列是A,B,C,D,时间,ID和H.

H columnd告诉记录是"打开"还是"关闭",这是我的查询的样子.

SELECT 
A, 
B, 
C, 
D,
COUNT(DISTINCT ID) AS numberOfRecords,
SUM(time) / COUNT(DISTINCT ID) AS averageTimeOfAllRecords   
FROM myTable
WHERE ISNUMERIC(A)=1 AND A IN (SELECT A FROM myTable2)
GROUP BY A,B,C,D
Run Code Online (Sandbox Code Playgroud)

我需要上面的查询返回另一个结果列:COUNT(DISTINCT ID)WHERE H ='Open'以便我可以获得numberOfOpenRecords.

我无法将我的新条件写入我的"WHERE",因为这会影响结果,例如numberOfRecords.

希望我解释了我的问题.

谢谢你的帮助.

And*_*mar 9

由于count不计算null值,您可以:

count(distinct case when H = 'Open' then id else null end)
Run Code Online (Sandbox Code Playgroud)