[SQL오답노트/프로그래머스]LV.2


1. 문제 설명

다음은 식품 정보를 포함합니다. 식품 제품 테이블. 식품 제품 테이블은 다음과 같습니다 제품 ID, 상품명, 제품_CD, 범주, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품 분류 및 식품 가격을 나타냅니다.

제품 ID VARCHAR(10) 잘못된
상품명 VARCHAR(50) 잘못된
제품_CD VARCHAR(10) 진실
범주 VARCHAR(10) 진실
가격 숫자 진실

2. 문제

식품 제품 테이블에서 가장 비싼 음식의 음식 ID, 음식 이름, 음식 코드, 음식 범주 및 음식 가격을 쿼리하는 SQL 문을 작성하십시오.


3. 문제 설명

예를 들어 제품 테이블이 있을 때

PRODUCT_IDPRODUCT_CODEPRICE

하나 A1000011 10000
2 A1000045 9000
C3000002 22000
4 C3000006 15000
5 C3000010 30000
6 K1000023 17000

상품을 만원 단위의 가격대로 나누면,

  • 0원~10,000원 ​​이하의 가격대 상품 제품 ID 2인 1품,
  • 10,000원에서 20,000원 ​​사이의 품목 제품 ID 1, 4, 6이 포함된 3개의 제품
  • 가격대가 2만원 이상 3만원 미만인 상품 제품 ID 3개 포함 1개 제품
  • 가격대가 3만원 이상 4만원 미만인 상품 제품 ID 5개 포함 1개 제품

결과는 다음과 같아야 합니다.

PRICE_GROUP제품

0 하나
10000
20000 하나
30000 하나

식품 제품 테이블이 다음과 같은 경우

PRODUCT_IDPRODUCT_NAMEPRODUCT_CDCATEGORYPRICE

P0018 맛있는 고추기름 CD_OL00008 식용유 6100
P0019 맛있는 유채 기름 CD_OL00009 식용유 5100
P0020 맛있는 산초유 CD_OL00010 식용유 6500
P0021 맛있는 케첩 CD_OL00001 소스 4500
P0022 맛있는 마요네즈 CD_OL00002 소스 4700

SQL을 실행하면 다음과 같아야 합니다.

PRODUCT_IDPRODUCT_NAMEPRODUCT_CDCATEGORYPRICE

P0020 맛있는 산초유 CD_OL00010 식용유 6500

4. 답변

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

5. 내가 오답을 쓴 이유

  • 멀티햄 기능은 컬럼 이외에는 사용할 수 없다는 것을 몰랐습니다.
  • 다중 행 함수를 조건으로 사용하려면 하위 쿼리를 고려하십시오.