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