在sql中进行分组时选择大小写ALL

时间:2015-05-20 17:08:01

标签: sql group-by

我想选择列中的所有数据符合伪代码中所述条件的情况:

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

如果所有数据都返回IsArchived = 1,那么如何为IsArchived列编写正确的语法以聚合值1,否则为0?

1 个答案:

答案 0 :(得分:0)

尝试使用SELECT sql FROM db2.sqlite_master WHERE type='table' AND name='current'

MIN()

假设SELECT ... MIN(s.IsArchived) as IsArchived, ... FROM ... 始终为0或1,如果此列中至少有一行包含值0,则返回0,否则返回1.