>

아래 그림과 같이 여러 조건을 가진 동일한 쿼리의 결과가 있습니다 :

SELECT COUNT(DISTINCT CASEID) FROM MYTABLE WHERE YR=2019 AND STATUS IN('W') 
SELECT COUNT(DISTINCT CASEID) FROM MYTABLE WHERE YR=2019 AND STATUS IN('K') AND APSTAT='J'
SELECT COUNT(DISTINCT CASEID) FROM MYTABLE WHERE YR=2019 AND STATUS IN('L') AND RCODE='901'
SELECT COUNT(DISTINCT CASEID) FROM MYTABLE WHERE YR=2019 AND STATUS IN('L') AND
RCODE='910'


  • 답변 # 1

    조건부 집계를 사용할 수 있습니다 :

    SELECT 
        COUNT(DISTINCT CASE WHEN STATUS IN('W')                 THEN CASEID END)
       ,COUNT(DISTINCT CASE WHEN STATUS IN('K') AND APSTAT='J'  THEN CASEID END)
       ,COUNT(DISTINCT CASE WHEN STATUS IN('L') AND RCODE='901' THEN CASEID END)
       ,COUNT(DISTINCT CASE WHEN STATUS IN('L') AND RCODE='910' THEN CASEID END)
    FROM MYTABLE
    WHERE YR=2019;
    
    

관련 자료

  • 이전 c# - NUnit 3+를 사용하여 파일을 어떻게 읽습니까 (테스트 용 Excel 시트의 데이터 사용)?
  • 다음 na () drop ()과 filter (colisNotNull)의 차이점 (Apache Spark)