Select 在 sql 中分组时 case ALL
Select case ALL when grouping in sql
我想select其中列中的所有数据都满足伪代码中所述的条件:
select
s.Id as Id,
SUM(CASE WHEN s.IsArchived=0 THEN 1 ELSE 0 END) as Days,
ALL(CASE WHEN s.IsArchived=1) AS IsArchived, -- Pseudo code
sum(s.Price) as Price
from
Stuff s
join
Other o
on
s.FK_OtherId = o.Id
where
sl.Derp is not null
group by
s.Derp
如果所有数据 returns IsArchived=1 否则为 0,我将如何为 IsArchived 列编写正确的语法以聚合值 1?
尝试使用 MIN()
:
SELECT ...
MIN(s.IsArchived) as IsArchived,
...
FROM ...
假设 s.IsArchived
始终为 0 或 1,如果至少有一行在此列中包含值 0,则它将 return 0,否则为 1。
我想select其中列中的所有数据都满足伪代码中所述的条件:
select
s.Id as Id,
SUM(CASE WHEN s.IsArchived=0 THEN 1 ELSE 0 END) as Days,
ALL(CASE WHEN s.IsArchived=1) AS IsArchived, -- Pseudo code
sum(s.Price) as Price
from
Stuff s
join
Other o
on
s.FK_OtherId = o.Id
where
sl.Derp is not null
group by
s.Derp
如果所有数据 returns IsArchived=1 否则为 0,我将如何为 IsArchived 列编写正确的语法以聚合值 1?
尝试使用 MIN()
:
SELECT ...
MIN(s.IsArchived) as IsArchived,
...
FROM ...
假设 s.IsArchived
始终为 0 或 1,如果至少有一行在此列中包含值 0,则它将 return 0,否则为 1。