2011-12-05 2 views
1

나는 그렇게 물어 봐도 : 결과의 수가 selected_he = yes2보다는 더 많은 것을 기록하는 경우개수 (a.selected_he = "yes")는 정상입니까?

having count(a.selected_he = "yes") > 2 

내가 물어보고 싶은. 그러나 카운트 기능에 a.selected_he = "yes"을 쓸 수 있는지 잘 모르겠습니다.

맞습니까?

+1

혼자서 시도하지 않으시겠습니까? "이걸 할 수 있을까?" 실제로 직접 시도하면 더 빨리 응답 할 수 있습니다. – Griffin

+0

대신 sum()을 사용해보세요. 비교의 부울 결과는 int (0 또는 1)로 변환되고 둘 다 "계산"됩니다. 하지만 sum()을 사용하면 '참'값만 합산됩니다. –

답변

4
SELECT sum(CASE WHEN a.selected_he='yes' THEN 1 ELSE 0 END)>2 FROM ... 

count 카운트 비 null의하지 true의.

+0

'sum'은 트릭을 할 것입니까? –

+0

예, 가능합니다. 물론 당신은 'a.select_he ='yes 'then then else null end)'를 셀 수있다. 왜 그런가? : –

1
select id,count(*) as counts 
from table 
where selected_he = 'yes' 
group by id 
having counts > 2 

where 절이 널을 포함하지 않는 경우.

+0

OP가 나머지를 걸러 내기를 원한다면, 좋은 선택을하는 것과 같은 소리를 내야한다. 그러나 여기서 컨텍스트는 잘 정의되어 있지 않습니다. –

관련 문제