Database/MySQL
MySQL 조건에 따라 그룹 묶기
dev.Woody
2021. 11. 29. 23:57

MySQL If문
SELECT IF (1 > 2, '1는 2보다 크다.', '1은 2보다 작다.');
MySQL IFNULL문
IFNULL(A,B)은 A가 NULL일 시 B를 출력한다.
SELECT
IFNULL('A', 'B'),
IFNULL(NULL, 'B');
MySQL CASE문
SELECT
CASE
WHEN -1 > 0 THEN '-1은 양수다.'
WHEN -1 = 0 THEN '-1은 0이다.'
ELSE '-1은 음수다.'
END;
MySQL 조건에 따라 집계된 값 받아오기
GROUP BY는 조건에 따라 집계된 값을 가져온다.
SELECT
Country, City,
CONCAT_WS(', ', City, Country)
FROM Customers
GROUP BY Country, City;

GROUP BY는 다음과 같이, 해당 GROUP별로의 개수를 측정할 수 있다.
SELECT
COUNT(*), OrderDate
FROM Orders
GROUP BY OrderDate;

GROUP BY를 통해서 다음과 같이 해당하는 위치에 값들을 셀 수 있다.
SELECT
CONCAT_WS(', ', City, Country) AS Location,
COUNT(CustomerID)
FROM Customers
GROUP BY Country, City;

이 GROUP BY에서 WITH ROLLUP을 이용하면 전체의 집계값을 구할 수 있다. WITH ROLLUP을 이용하면, ORDER BY는 이용할 수 없다.
SELECT
Country, COUNT(*)
FROM Suppliers
GROUP BY Country
WITH ROLLUP;
다음과 같이 마지막 행에 집계값이 나온다.
