select receipt_no, week(receipt_date), receipt_date from reception_information where receipt_date between '2015-01-01' and '2015-04-01';
이 쿼리를 실행하면
receipt_no | week(receipt_date) | receipt_date |
2015xxx | 1 | 2015-01-08 |
2015xxx | 11 | 2015-03-17 |
2015xxx | 11 | 2015-03-19 |
2015xxx | 12 | 2015-03-22 |
이런 식으로 나옵니다.
저기서 week(receipt_date)를 컬럼으로 쓰고 싶은데 어떻게 해야 하나요?
예를 들어
사용자 | 지역 | 1주차 | 2주차 | 3주차 | 4주차 | 5주차 | 6주차 | 총합 |
국내 | 전체 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 74070 |
해외 | 전체 | 321 | 321 | 321 | 321 | 321 | 321 | 1926 |
총합 | 전체 | 12666 | 12666 | 12666 | 12666 | 12666 | 12666 | 151992 |
이런식으로 나오게 하고 싶습니다 가능 한가요?
SELECT IFNULL(loc, '총합') 지역 , COUNT(CASE w WHEN 1 THEN 1 END) "1" , COUNT(CASE w WHEN 2 THEN 1 END) "2" -- 중간 생략 -- , COUNT(CASE w WHEN 53 THEN 1 END) "53" , COUNT(*) 총합 FROM (SELECT loc , week(receipt_date) w FROM reception_information WHERE receipt_date BETWEEN '2015-01-01' AND '2015-04-01' ) a GROUP BY loc WITH ROLLUP ;