gpt4 book ai didi

sql - 按组保留左表

转载 作者:行者123 更新时间:2023-12-05 00:55:55 25 4
gpt4 key购买 nike

请考虑这个脚本:

declare @Days   table
([Day] int)

insert @Days values(1),(2),(3),(4),(5)

declare @Data table
(
ID int,
[Day] int,
[Name] Nvarchar(50),
[Status] bit
)

insert into @Data
values(1,1,'Nima',1),(2,2,'Arian',1),(3,2,'Nima2',0),(4,2,'Nima3',1),(5,3,'Nima4',0)

select y.[Day],count(Id)
from @Days y left join @Data d
on y.[Day] = d.[Day]
where Status=1
group by y.[Day]

这个查询有这个结果:

Day (No column name)
1 1
2 2

但我想要这样的结果:

Day (No column name)
1 1
2 2
3 0
4 0
5 0

我如何重写上述查询以获得上述结果。

谢谢

最佳答案

where 子句中的条件移动到 left join 的条件。现在编写查询时,where 子句过滤掉具有空值的行(并将左连接转换为内连接)。

select y.[Day],count(Id) 
from @Daye y
left join @Data d on y.[Day] = d.[Day] and d.Status=1
group by y.[Day]

关于sql - 按组保留左表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com