🌟 COUNT
SELECT COUNT(*) FROM sample;
🍀 DISTINCT : 중복 제거
🌟 SUM
SELECT SUM(PRICE) FROM sample;
🌟 AVG
SELECT AVG(PRICE) FROM sample;
📌 평균을 구할때 주의할 점
NULL값을 0으로 취급하고 계산할 경우
SELECT SUM(PRICE)/COUNT(*)
FROM sample;
🌟 MAX
SELECT MAX(PRICE) FROM sample;
🌟 MIN
SELECT MIN(PRICE) FROM sample;
💭 전체
SELECT COUNT(Price),SUM(Price),AVG(Price),MAX(Price),MIN(Price)
FROM sample;
🌟 GROUP BY
공급자별로 평균 가격을 확인하는 쿼리
어떤 공급자는 상대적으로 조금 싼 물건들을 파는구나를 확인
SELECT SupplierID, AVG(Price)
FROM Products
GROUP BY SupplierID
공급자별로 어떤 카테고리로 평균 가격을 확인하는 쿼리
어떤 공급자가 어떤 카테고리에서 비싼 물건들을 파는지, 싼 물건들을 파는지 확인
SELECT SupplierID
, Categoryid
, AVG(Price) AS Price
FROM Products
GROUP BY SupplierID, Categoryid
SELECT SupplierID
, Categoryid
, AVG(Price) AS Price
FROM Products
GROUP BY 1,2
나온 결과에서도 AVG(Price)이 100불 이상인 경우
HAVING절을 이용해야 실행순서가 맞아 원하는 값 추출
SELECT SupplierID
, CategoryID
, AVG(Price)
FROM Products
GROUP BY SupplierID, CategoryID
HAVING AVG(PRICE) >= 100
ALIAS 사용해도 가능
SELECT SupplierID
, CategoryID
, AVG(Price) AS avg_price
FROM Products
GROUP BY SupplierID, CategoryID
HAVING avg_price >= 100
🌟 ORDER BY
평균 가격 오름차순
SELECT SupplierID
, CategoryID
, AVG(Price)
FROM Products
GROUP BY SupplierID, CategoryID
ORDER BY AVG(Price);
평균 가격 내림차순
SELECT SupplierID
, CategoryID
, AVG(Price)
FROM Products
GROUP BY SupplierID, CategoryID
ORDER BY AVG(Price) DESC;
💭 문제풀이
[해커랭크_문제] Top earners
SELECT (SALARY*MONTHS) AS EARNINGS
, COUNT(*)
FROM EMPLOYEE
GROUP BY EARNINGS
ORDER BY EARNINGS DESC
LIMIT 1
📌 포인트
CEIL() : 올림
SELECT CEIL(5.5)
FLOOR() : 내림
SELECT FLOOR(5.5)
ROUND() : 반올림
SELECT ROUND(5.556506,4)