使用SQLite根据where子句聚合结果

时间:2012-04-13 12:39:24

标签: sql grouping where-clause

我有一个基于各种标准对记录进行计数的查询,但我想根据所述标准将结果拆分为两个分组字段。有没有办法在查询中执行此操作 - 或者是否需要进行两次查询?

select count(PT_TASK_ASSAY_DISP) as 'Count' from vbasedata v
where 
    v.PT_TASK_ASSAY_DISP like 'SS%' or
    (v.PT_TASK_ASSAY_DISP like 'IP%' and
    v.PT_TASK_ASSAY_DISP not like 'IP CUT' and
    v.PT_TASK_ASSAY_DISP not like 'IP NEG');

我正在尝试按IP和SS进行分组以获得总计数。

1 个答案:

答案 0 :(得分:2)

我不确定你想要什么。但是如果你想要每个'SS%'一个计数,一个计算'IP%'。那么也许是这样的:

select 
    SUM(CASE WHEN PT_TASK_ASSAY_DISP LIKE 'SS%' THEN 1 ELSE 0 END) as SSCount,
    SUM(CASE WHEN PT_TASK_ASSAY_DISP LIKE 'IP%' THEN 1 ELSE 0 END) as IPCount 
from vbasedata v
where 
    v.PT_TASK_ASSAY_DISP like 'SS%' or
    (v.PT_TASK_ASSAY_DISP like 'IP%' and
    v.PT_TASK_ASSAY_DISP not like 'IP CUT' and
    v.PT_TASK_ASSAY_DISP not like 'IP NEG');