SELECT 
      TRUNC(PRICE / 10000) * 10000 AS "PRICE_GROUP",
      COUNT(PRICE)
FROM PRODUCT
GROUP BY
    TRUNC(PRICE / 10000) * 10000
ORDER BY
    PRICE_GROUP

 


 

<포인트 정리>

 

1. 코드 흐름 중요

 

저기서 GROUP BY PRICE_GROUP을 하면 에러 난다.

애초에 FROM PRODUCT -> GROUP BY -> SELECT 이 순서로 진행되는 듯 하다. 

따라서 SELECT에서 정의된 PRICE GROUP을 인식할 수 없는 것.

 

대신, PRICE_GROUP을 만든 수식 그대로를 GROUP BY에 넣을 수 있다. 

 

2. 구간을 만들 때 

 

TRUNC(PRICE / 10000) * 10000 이런 식으로 하는게 꿀팁.

 

<추가! CASE 사용>

 

SELECT

 

(CASE
WHEN TRUNC(PRICE/10000)>=0 THEN TRUNC(PRICE/10000)10000
END)

AS "PRICEGROUP",


COUNT(PRODUCT
ID) AS "PRODUCTS"


FROM
PRODUCT


GROUP BY
(CASE
WHEN TRUNC(PRICE/10000)>=0 THEN TRUNC(PRICE/10000)10000
END)


ORDER BY
PRICE_GROUP

+ Recent posts