카테고리 없음

[SQL] 한 열에서 여러 값을 선택하는 방법

행복을전해요 2021. 2. 2. 18:56

select 문에 색상을 포함하고 각 색상의 자동차를 계산하기 위해 그룹화하기 만하면됩니다.

 SELECT Color, Count(*)
 FROM CARS.TYPES WITH(NOLOCK)
  GROUP BY Color
  

또는

SELECT COUNT(CASE WHEN Color = 'RED' THEN 1
                  ELSE NULL
                               END) AS RedCars
                                      ,COUNT(CASE WHEN Color = 'BLUE' THEN 1
                                                         ELSE NULL
                                                                       END) AS BlueCars
                                                                              ,COUNT(*) AS AllCars
                                                                                  FROM CARS.TYPES WITH ( NOLOCK )
                                                                                  
-------------------

조건부로이를 수행 할 수 있습니다 SUM().

SELECT SUM(CASE WHEN Color = 'Red' THEN 1 END) AS 'Total Red Cars'
      ,SUM(CASE WHEN Color = 'Blue' THEN 1 END) AS 'Total Blue Cars'
      FROM CARS.TYPES
      

MySQL을 사용하는 경우 더 단순화 할 수 있습니다.

SELECT SUM(Color = 'Red') AS 'Total Red Cars'
      ,SUM(Color = 'Blue') AS 'Total Blue Cars'
      FROM CARS.TYPES
      
-------------------

또는 PIVOT

SELECT RED + BLUE + GREEN AS total,
       RED,
              BLUE,
                     GREEN
                     FROM   CARS.TYPES PIVOT (COUNT (LICENSE) FOR COLOR IN ([RED], [BLUE], [GREEN])) P 
                     
-------------------
 SELECT SUM(Al) AllCount, SUM(Red) RedCount, SUM(Green) GreenCount, ...
 (  
    SELECT 1 AS Al 
       , CASE WHEN Color = 'Red' THEN 1 ELSE 0 END AS Red 
          , CASE WHEN Color = 'Green' THEN 1 ELSE 0 END AS Green
             ... 
                FROM CARS.Types
                 )
                 


출처
https://stackoverflow.com/questions/22049933