Sparta/CODEKATA

[250926] 스파르타코딩 본캠프 39일차

junecho 2025. 9. 26. 15:51

💥  CODEKATA                                                                                                           

어제부터 코드카타 목록에 없는 프로그래머스 SQL 문제 격파중

~ SQL 4페이지 까지 모든 문제 ✔ 완료

어제는 너무 쉬운 문제들밖에 없어서 코드카타 따로 올릴게 없었음

오늘도 그렇긴 한데 함정 문제가 있어서 올려봄

 

오늘의 총 후기 : 문제를 꼼꼼히 잘 읽자...... (개억울함)

 

 

 

00)  년, 월, 성별 별 상품 구매 회원 수 구하기

SELECT 
    YEAR(s.sales_date) AS year, MONTH(s.sales_date) AS month, 
    i.gender, COUNT(DISTINCT s.user_id) AS users
FROM online_sale s LEFT JOIN user_info i ON s.user_id = i.user_id
WHERE i.gender = 0 OR i.gender = 1
GROUP BY YEAR(s.sales_date), MONTH(s.sales_date), i.gender
ORDER BY year, month, gender

⇒ ⭕

이 문제의 어이없는 점.

GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다.

라고 했으면서, 답안은

이때, 성별 정보가 없는 경우 결과에서 제외해주세요. <<<

저거 못보고 계속 아 왜 결과가 틀렸다고 하지 하고 다시 읽어보니까 결과에서 제외하래 ㅠ 그럼 NULL값이 남자라고 알려주지 말던가~~~~ 개낚임

 

 

 

 

더보기

QCC

 

1번

SELECT COUNT(business_entity_id) AS customer_count
FROM person
WHERE email_promotion = 1 OR email_promotion = 2

아 문제 대충 안읽어서 틀림 ㄹㅈㄷㅋㅋ
개인(소매) << 고객의 수 였구나 미친 ~~~개웃김 ㅠ
WHERE person_type = "IN" 넣게 해주세요 젠장ㅋㅋ

문제 대충 읽어서 2번 맞고 1번틀린 바보 저에요 

 

 

2번

-- 2011-10 동안 / 취소 안된 거래 / 총 주문 수량
WITH cnt AS (
  SELECT sh.customer_id, SUM(sd.order_qty) AS cnt
  FROM sales_order_header sh LEFT JOIN sales_order_detail sd ON sh.sales_order_id = sd.sales_order_id
  WHERE sh.order_date LIKE "2011-10%" AND sh.status != 6
  GROUP BY sh.customer_id
),
-- 총 주문수량 70이상 & 고객 이름 찾기 위한 join 
sum70 AS (
  SELECT cnt.customer_id, cnt.cnt, cus.person_id
  FROM cnt cnt LEFT JOIN sales_customer cus ON cnt.customer_id = cus.customer_id
  WHERE cnt >= 70
)
  
SELECT s.customer_id, p.first_name, p.last_name, s.cnt AS total_quantity
FROM sum70 s LEFT JOIN person p ON s.person_id = p.business_entity_id
ORDER BY s.customer_id

와 2번 제출하고 자리 와가지고 다시 코드 보는데, 총 수량 컬럼 total_quantity 으로 이름 안바꿔놔서 개 식겁함 ㄷㄷㄷㄷ

그래서 수정하고 다시 제출했더니 재제출 돼서 다행이었순 휴~~~