2012-04-13 5 views
1

다양한 기준에 따라 레코드를 계산하는 쿼리가 있지만이 조건을 기반으로 두 개의 그룹화 된 필드로 결과를 나눠 넣으 려합니다. 쿼리 내부에서이를 수행 할 수있는 방법이 있습니까? 아니면 두 개의 쿼리가 필요합니까?SQLite를 사용하여 where 절을 기반으로 한 결과 집계

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로 그룹화하려고합니다.

답변

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'); 
+0

그게 내가 찾고있는 것입니다. 감사합니다! SS 및 IP 레코드를 그룹화하는 데 'TASK_ASSAY'필드가 필요한지 확실하지 않았습니다. – gsforfree

관련 문제