1.
SELECT title
FROM BOOK
WHERE title LIKE "%데이터%";
2.
SELECT COUNT(title) # SELECT COUNT(*)
FROM BOOK
WHERE title LIKE "%데이터%";
3.
SELECT AVG(price)
FROM BOOK
WHERE title LIKE "%데이터%";
4.
SELECT *
FROM CUSTOMER
WHERE address = "Seoul";
5.
SELECT COUNT(cust_no) # SELECT COUNT(*)
FROM CUSTOMER
WHERE address = "Seoul";
6.
SELECT COUNT(*)
FROM ORDER_TABLE
WHERE book_no = 3;
7.
SELECT AVG(IF(SUBSTR(dob, 1, 1) < 3, 24 - SUBSTR(dob, 1,2), 124 – SUBSTR(dob, 1,2) ) )
FROM CUSTOMER
WHERE address = “Seoul”;
첫번째 자리가 3보다 작으면 2000년대에 태어난 사람 > 2024년에서 출생연도인 YY를 빼면 나이
첫번째 자리가 3보다 같거나 크면 1900년대에 태어난 사람 > 1924년에서 출생연도인 YY를 빼면 나이
1.
SELECT SUM(*) # COUNT 아님 주의
FROM ORDER_TABLE O
JOIN BOOK B
ON O. book_num = B.book_no
WHERE title LIKE "%데이터%"; # (SELECT title LIKE "%데이터%");
2.
SELECT SUM(B.price)
FROM BOOK B
JOIN ORDER_TABLE O
ON B.book_no = O.book_num
WHERE O.book_num = 3; # 모든 합이 아닌 3번을 구매한 주문들의 가격 합
3.
SELECT AVG(B.price)
FROM ORDER_TABLE O
JOIN BOOK B
ON O.book_num = B.book_no
JOIN CUSTOMER C
ON O.cust_num = C.cust_no
WHERE C.address = "Seoul";
4.
SELECT
B.book_no,
B.title,
COUNT(O.order_no) AS sale_count, # 판매량(주문 수)
SUM(B.price) AS total_sales # 매출액(가격 합산)
FROM ORDER_TABLE O
JOIN BOOK B ON O.book_num = B.book_no
JOIN CUSTOMER C ON O.cust_num = C.cust_no
WHERE SUBSTR(C.dob, 1, 2) BETWEEN '00' AND '09' -- 00년대생 고객
GROUP BY B.book_no, B.title
ORDER BY sale_count DESC, total_sales DESC; # 판매량 및 매출액 순으로 정렬
'[ Computer Science ] > Database_sql' 카테고리의 다른 글
[Database/MySQL] subquery 활용 연습 (2) from 조건에 중첩 (0) | 2024.11.07 |
---|---|
[Database/MySQL] subquery 활용 연습 (1) where 조건에 중첩 (0) | 2024.11.06 |
[Database/midterm] SQL 문법 기초 (11) | 2024.10.19 |
[Database/midterm] 데이터베이스 설계 (개념적, 논리적) (2) | 2024.10.19 |
[Database/MySQL] 실습을 위한 초기 데이터 생성 (4) | 2024.10.17 |
[프로그래머스/MySQL] Lv. 1 평균 일일 대여 요금 구하기 (SELECT) (7) | 2024.10.17 |
[프로그래머스/MySQL] Lv. 1 역순 정렬하기 (SELECT) (0) | 2024.10.17 |