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。