1. ์๋์ฐจ ๋์ฌ ๊ธฐ๋ก์์ ๋์ฌ์ค / ๋์ฌ ๊ฐ๋ฅ ์ฌ๋ถ ๊ตฌ๋ถํ๊ธฐ
-- ์ ๋ต
SELECT car_id,
MAX(CASE WHEN '2022-10-16' BETWEEN start_date AND end_date THEN "๋์ฌ์ค"
ELSE "๋์ฌ ๊ฐ๋ฅ" END) AVAILABILITY
FROM car_rental_company_rental_history
GROUP BY 1
ORDER BY 1 DESC
-- ์ค๋ต
SELECT car_id,
MAX(IF('2022-10-16' BETWEEN start_date AND end_date, "๋์ฌ์ค", "๋์ฌ๊ฐ๋ฅ")) AVAILABILITY
FROM car_rental_company_rental_history
GROUP BY 1
ORDER BY 1 DESC
(1) MAX๋ฅผ ์ฌ์ฉํ ์ด์
ํ ์ด๋ธ์ด '๋์ฌ ์ด๋ ฅ(ํ์คํ ๋ฆฌ)'์ ๊ดํ ๊ฒ์ด๋ผ, ๊ฐ์ car_id ๋ผ๊ณ ํด๋ ๋์ฌ ์ด๋ ฅ์ ์ฌ๋ฟ์ด๋ค.
(2) ๊ถ๊ธํ ์
IF๋ฌธ์ ์ฌ์ฉํ ์ค๋ต์ด ์ ์ค๋ต์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
๋ฌธ๋ฒ์ ์ผ๋ก ์ฐจ์ด๋ ์์ด ๋ณด์ด๊ณ , ์คํ ๊ฒฐ๊ณผ๋ ๋๊ฐ์๋ฐ ์์ธ ์ผ์ด์ค๊ฐ ์๊ธฐ๋ ๊ฑด์ง?
(3) ํด๊ฒฐ
IF๋ฌธ์ด ๋ฌธ์ ์๋ ๊ฒ ์๋๋ผ, 11ํ์์ "๋์ฌ ๊ฐ๋ฅ"์ด ์๋ "๋์ฌ๊ฐ๋ฅ"์ผ๋ก ์จ์ ํ๋ฆฐ ๊ฒ์ด์๋ค.... ๋์ด์ฐ๊ธฐ ํ๋๋ ์ฃผ์ํ ๊ฒ.
2. ๋ , ์, ์ฑ๋ณ ๋ณ ์ํ ๊ตฌ๋งค ํ์ ์ ๊ตฌํ๊ธฐ
-- ์ ๋ต1
SELECT YEAR(a.sales_date) YEAR,
MONTH(a.sales_date) MONTH, #1, 2, ..., 12 ํ์
b.gender GENDER,
COUNT(DISTINCT b.user_id) USERS
FROM online_sale a LEFT JOIN user_info b ON a.user_id=b.user_id
WHERE b.gender IS NOT NULL
GROUP BY 1, 2, 3
ORDER BY 1, 2, 3 ASC
-- ์ ๋ต2
SELECT DATE_FORMAT(a.sales_date, '%Y') YEAR,
DATE_FORMAT(a.sales_date, '%m') MONTH, #01, 02, ..., 12 ํ์
b.gender GENDER,
COUNT(DISTINCT b.user_id) USERS
FROM online_sale a LEFT JOIN user_info b ON a.user_id=b.user_id
WHERE b.gender IS NOT NULL
GROUP BY 1, 2, 3
ORDER BY 1, 2, 3 ASC
-- ์ค๋ต
SELECT DATE_FORMAT(a.sales_date, '%Y') YEAR,
SUBSTR(DATE_FORMAT(a.sales_date, '%m'), 2, 1) MONTH, #๋ฌธ์๋ผ์?
b.gender GENDER,
COUNT(DISTINCT b.user_id) USERS
FROM online_sale a LEFT JOIN user_info b ON a.user_id=b.user_id
WHERE b.gender IS NOT NULL
GROUP BY 1, 2, 3
ORDER BY 1, 2, 3 ASC
๋์ถฉ ์ฝ๊ณ ํ๋ฉด ๋ฐ๋ก ํ๋ฆฌ๋ ๋ฌธ์ .
(1) DISTINCT๋ฅผ ์ด ์ด์
"๋ , ์, ์ฑ๋ณ ๋ณ๋ก ์ํ์ ๊ตฌ๋งคํ 'ํ์์'๋ฅผ ์ง๊ณ"ํด์ผ ํ๋ค.
๊ฐ๋ น 2022๋ 1์์ ํ์A๊ฐ ์ํ์ 2๋ฒ ๊ตฌ๋งคํ๋ค๋ฉด, ์ง๊ณํ ๊ฒฐ๊ณผ๊ฐ์ 2๊ฐ ์๋๋ผ 1์ด์ด์ผ ํ๋ค.
(2) ๊ถ๊ธํ ์
25ํ์์ SUBSTR์ ์จ์ ํ๋ฆฐ ๊ฒ์ผ๋ก ์ถ์ ํ๋๋ฐ, SUBSTR์ ์ฐ๋ฉด ํ์ ์ ๋ฌธ์๋ก ์ธ์ํด์ ๊ทธ๋ฐ ๊ฑธ๊น?
ํ์์ผ์ ํํฐ๋๊ป ์ฌ์ญค๋ณผ ๊ฒ.
'๐งฑ SQL > ๐ป ์ฟผ๋ฆฌ ํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
solvesql ๋ฐฐ์ก ์์ ์ผ ์์ธก ์ฑ๊ณต๊ณผ ์คํจ - ๋ฌธ์ ํ์ด (0) | 2024.05.22 |
---|---|
240102 TUE ๋์ฌ ํ์๊ฐ ๋ง์ ์๋์ฐจ๋ค์ ์๋ณ ๋์ฌ ํ์ ๊ตฌํ๊ธฐ (0) | 2024.01.02 |
231227 WED ์ฐ์ ์ ์๊ฑฐํธ๊ฐ ๋ด๊ธด ์ฅ๋ฐ๊ตฌ๋ (0) | 2023.12.27 |
231226 TUE ์ฝ๋์นดํ ๋ฆฌ๋ทฐ (1) | 2023.12.26 |