sql 문법
ORDER BY : 출력 결과를 오름차순 정렬, 내림차순 정렬
SELECT emp_no, salary
FROM salaries
ORDER BY salary;
SELECT emp_no, salary
FROM salaries
ORDER BY salary DESC;
emp_no, salary를 조회하는데 salary가 같으면 from_date를 기준으로 오름차순 정렬
SELECT emp_no, salary, from_date
FROM salaries
ORDER BY salary, from_date;
GROUP BY : 특정 속성별로 묶어서 결과를 조회할 때
SELECT emp_no, MAX(salary)
FROM salaries
GROUP BY emp_no;
SELECT gender, COUNT(emp_no)
FROM employees
GROUP BY gender;
함수 : AVG()평균, MAX()최대값, MIN()최소값, COUNT()카운트 등
HAVING : WHERE와 비슷한데 GROUP BY로 묶은 값에 대해서 조건으로 조회할 때
SELECT emp_no, AVG(salary)
FROM salaries
WHERE emp_no >= 15000
GROUP BY emp_no
HAVING AVG(salary) > 80000;
SELECT title, COUNT(emp_no)
FROM titles
WHERE title LIKE '%Engineer%'
GROUP BY title
HAVING COUNT(emp_no) > 90000;
IN : IN으로 지정된 값들 중에 있는 것만 조회
SELECT emp_no, title
FROM titles
WHERE title IN ('Senior Engineer', 'Engineer', 'Assistant Engineer');
JOIN : 두 개의 테이블을 하나의 테이블로 합치는 기능(INNER, LEFT OUTER, RIGHT OUTER)
SELECT *
FROM employees
LEFT OUTER JOIN dept_emp
ON employees.emp_no = dept_emp.emp_no;
**프로그래머스 sql LV.4
우유와 요거트 문제
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
SELECT cart_id
from CART_PRODUCTS
where name in ('milk') and cart_id in (select cart_id
from CART_PRODUCTS
WHERE NAME IN ('YOGURT'))
ORDER BY CART_ID;
서브쿼리를 사용하여 요거트를 산 사람의 아이디 중 우유를 산 사람의 아이디 조회