[MySQL] WITH ROLLUP - 항목별 합계에 대한 전체 합계 구하기
WITH ROLLUP 그룹별로 합계를 한 번에 구할 때 사용한다. GROUP BY를 사용하면 GROUP BY 뒤에 나오는 컬럼별로 합계를 구해주는데, 항목별 합계에 전체 합계가 같이 나오게 하는 것이 WITH ROLLUP이다. 1) WITH ROLLUP 기본 예제 SELECT SUBSTRING(address, 1, 2) as region, gender, COUNT(*) FROM copang_main.member GROUP BY region, gender WITH ROLLUP ORDER BY region ASC, gender DESC; 2) HAVING 컬럼 IS NOT NULL SELECT SUBSTRING(address, 1, 2) as region, gender, COUNT(*) FROM copang..
2020. 12. 21.
[MySQL] GROUP BY - 그룹핑 / HAVING
1. GROUP BY 컬럼 SELECT 절에는 1) GROUP BY 뒤에서 사용한 컬럼들 또는 2) COUNT, MAX 등과 같은 집계 함수만 올 수 있다. 거꾸로 말해 GROUP BY 뒤에 쓰지 않은 컬럼들은 SELECT 뒤에 올 수 없다. SELECT gender, COUNT(*), AVG(height), MIN(weight) FROM copang_main.member GROUP BY gender; 2. 2가지 이상의 컬럼 그룹핑 SELECT SUBSTR(address, 1, 2) AS region, gender, count(*) FROM copang_main.member GROUP BY SUBSTR(address, 1, 2), gender; 3. HAVING - GROUP BY에 대한 조건절 반드시..
2020. 12. 15.
[MySQL] NULL을 다른 값으로 변환하는 함수
COALESCE() MS SQL에서 IFNULL(컬럼, 0) 컬럼값이 null이면, 0을 넣는 함수가 있다. MySQL에서는 COALESCE(컬럼, 0)을 이용해서 null이면, 0을 넣는 함수를 사용한다. 1) COALESCE(컬럼,0) SELECT COALESCE(height, '###'), COALESCE(weight, '---'), COALESCE(address, '@@@') FROM copang_main.member; 2) COALESCE(컬럼1, 컬럼2, 0) 컬럼1이 NULL이면 컬럼2값을 넣고, 컬럼2값이 NULL이면 0을 넣는다. SELECT COALESCE(height, weight * 2.3, 'N/A') FROM copang_main.member; IFNULL(컬럼,0) 첫번째 인자..
2020. 12. 15.