2012-02-05 2 views
1

나는이단일 쿼리의 열을 가져

C1 C2 
    1  0 
    1  1 

같은 테이블 내가 행의 수를 원하는이 곳 C1 = 1 행의 수 여기서 C2 = 0 하나 개의 쿼리 대신 별도의 질의에 .

답변

2
select 
    sum(case c1 when 1 then 1 else 0 end) Count_c1, 
    sum(case c2 when 0 then 1 else 0 end) Count_c2 
from YourTable 
+0

을하지만, 잠재적으로 데이터베이스에 작은 작업 공간을 남긴다. – Per

+0

@OlegDok, John에게이 질문에주의하십시오. http://stackoverflow.com/questions/9149759/multiply-combination-of-column-based-on-a-column-value. 다른 질문에서 OP 코멘트를 검토하십시오. 이런 종류의 사용자로 치료할 방법이 있는지 알고 있습니까? 통신 채널에 대해 유감이지만이 경우 다른 사용자와 연락하는 올바른 방법이 무엇인지 알 수 없습니다. 문안 인사. – danihp

+0

@Per 서로 다른 쿼리와 노이즈는 두 개의 열이있는 두 개의 행을 반환합니다. 각 열의 결과는 내 것이 두 개의 열이있는 행 하나를 반환합니다. –

1

당신은 UNION 키워드를 사용할 수 있습니다 :이 노이즈의 대답보다 더 복잡한 보이는

SELECT "ones", COUNT(*) WHERE c1=1 
UNOIN 
SELECT "zeroes", COUNT(*) WHERE c2=0 
관련 문제