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.
希望我解释了我的问题.
谢谢你的帮助.
由于count不计算null值,您可以:
count(distinct case when H = 'Open' then id else null end)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |