STUDY/SQL

[SQL] ๋‚ ์งœ ๋…„์›”๋กœ group byํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค

wonpick 2021. 5. 9. 20:01

๐Ÿฅ๋‚œ ์›ํ•œ๋‹ค 'YYYY-MM'๋งŒ ๋ฝ‘๊ธฐ๋ฅผ๐Ÿฅ

๋ฌธ์ œ: ๋‚ ์งœ๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์‹ถ๋‹ค.
์‹ค์Šต ํ™˜๊ฒฝ: Redash

์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฌผ
2016-11-15 00:00 โ†’ 2016-11

1. SUBSTR()

SUBSTR(๋ฌธ์ž์—ดor์ปฌ๋Ÿผ๋ช…,์‹œ์ž‘์œ„์น˜,์ถ”์ถœ๊ฐœ์ˆ˜)

select substr(o.order_date,1,7)
from orders o
group by substr(o.order_date,1,7)

2. DATE_FORMAT()

DATE_FORMAT(๋ฌธ์ž์—ดor์ปฌ๋Ÿผ๋ช…, ์›ํ•˜๋Š” ๋ฌธ์ž์—ด ํ˜•ํƒœ)

select date_format(order_date, '%Y-%m')
from orders
group by date_format(order_date, '%Y-%m')
#y๋ผ๊ณ ํ•˜๋ฉด ๋…„๋„์˜ ๋ ๋‘์ž๋ฆฌ๋งŒ M์ด๋ผ๊ณ ํ•˜๋ฉด ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž ์›”๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.

3. MID()

MID(๋ฌธ์ž์—ดor์ปฌ๋Ÿผ๋ช…, ์‹œ์ž‘์œ„์น˜, ์ถ”์ถœ๊ฐœ์ˆ˜)

select mid(o.order_date,1,7)
from orders o
group by mid(o.order_date,1,7)

4.MONTH()

CONCAT(YEAR(์ปฌ๋Ÿผ๋ช…),'-',MONTH(์ปฌ๋Ÿผ๋ช…))

select CONCAT(YEAR(order_date), '-', MONTH(order_date)) M
from orders
group by M # ๊ฒฐ๊ณผ๋Š” 2006-1 ์ด๋Ÿฐ์‹์œผ๋กœ ์›”์€ ๋‘์ž๋ฆฌ์ˆ˜๋กœ ์•ˆ๋‚˜์˜จ๋‹น.

์›”์„ ๋‘์ž๋ฆฌ์ˆ˜๋กœ ๋งž์ถ”๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๐ŸฅฆLPAD() ์ถ”๊ฐ€

LPAD(์ปฌ๋Ÿผ๋ช…,๋Œ€์ƒ ๊ฐ’์˜ ํฌ๊ธฐ๋ฅผ ํฌํ•จํ•œ ๊ฐฏ์ˆ˜ , ์‚ฝ์ž…ํ•  ๋ฌธ์ž)

select CONCAT(YEAR(order_date), '-', LPAD(MONTH(order_date),2,0)) M