1. type_a별로 상품의 개수와 price 합계 출력
< type_a별로 상품의 개수와 price 합계 출력 >
mysql> select type_a, sum(price) as '합계', count(num) as '개수'
-> from product
-> group by type_a
-> order by type_a;
+------------+--------+------+
| type_a | 합계 | 개수 |
+------------+--------+------+
| 아우터 | 280400 | 2 |
| 티셔츠 | 55800 | 4 |
| 패션운동복 | 80000 | 2 |
+------------+--------+------+
3 rows in set (0.00 sec)
2. price가 16000이상인 제품을 할인 = 할인 상품의 이름과 원가격 , 할인 가격(10%할인)을 출력
< price가 16000이상인 제품을 할인 = 할인 상품의 이름과 원가격 , 할인 가격(10%할인)을 출력 >
1. 16000이상인 제품 출력
mysql> select * from product where price >= 16000;
+-----+------------+--------------+---------------------+--------+--------+-------------+---------------+
| num | type_a | type_b | name | price | amount | sale_amount | register_data |
+-----+------------+--------------+---------------------+--------+--------+-------------+---------------+
| 5 | 패션운동복 | 트레이닝상의 | 피트니스상의 | 30000 | 34 | 55 | 2020-11-05 |
| 6 | 패션운동복 | 트레이닝하의 | 피트니스하의 | 50000 | 55 | 34 | 2020-11-06 |
| 7 | 아우터 | 재킷 | 양면 롱 후리스 자켓 | 233000 | 100 | 42 | 2020-11-05 |
| 8 | 아우터 | 패딩 | 롱 패딩 점퍼 | 47400 | 10 | 45 | 2020-11-01 |
+-----+------------+--------------+---------------------+--------+--------+-------------+---------------+
4 rows in set (0.00 sec)
2. 할인 상품의 이름과 원가격 , 할인 가격(10%할인)을 출력
mysql> select name as '상품이름', price as '원가격', price*0.9 as '할인가격' from product
-> where price>=16000;
+---------------------+--------+----------+
| 상품이름 | 원가격 | 할인가격 |
+---------------------+--------+----------+
| 피트니스상의 | 30000 | 27000.0 |
| 피트니스하의 | 50000 | 45000.0 |
| 양면 롱 후리스 자켓 | 233000 | 209700.0 |
| 롱 패딩 점퍼 | 47400 | 42660.0 |
+---------------------+--------+----------+
4 rows in set (0.00 sec)
3. 11월에 입고된 상품만 출력
< 11월에 입고된 상품만 출력 >
- month(날짜) : 해당날짜의 월만 추출
- year(날짜) : 해당날짜의 년만 추출
- day(날짜) : 해당날짜의 일만 추출
mysql> select * from product where month( register_data ) = 11;
+-----+------------+--------------+---------------------+--------+--------+-------------+---------------+
| num | type_a | type_b | name | price | amount | sale_amount | register_data |
+-----+------------+--------------+---------------------+--------+--------+-------------+---------------+
| 4 | 티셔츠 | 반소매 | 에어 나시 | 9000 | 33 | 33 | 2020-11-10 |
| 5 | 패션운동복 | 트레이닝상의 | 피트니스상의 | 30000 | 34 | 55 | 2020-11-05 |
| 6 | 패션운동복 | 트레이닝하의 | 피트니스하의 | 50000 | 55 | 34 | 2020-11-06 |
| 7 | 아우터 | 재킷 | 양면 롱 후리스 자켓 | 233000 | 100 | 42 | 2020-11-05 |
| 8 | 아우터 | 패딩 | 롱 패딩 점퍼 | 47400 | 10 | 45 | 2020-11-01 |
+-----+------------+--------------+---------------------+--------+--------+-------------+---------------+
5 rows in set (0.00 sec)
4. 10월 이전에 입고된 상품만 출력
mysql> select * from product where month( register_data ) <=10;
+-----+--------+--------+-------------------+-------+--------+-------------+---------------+
| num | type_a | type_b | name | price | amount | sale_amount | register_data |
+-----+--------+--------+-------------------+-------+--------+-------------+---------------+
| 1 | 티셔츠 | 긴소매 | 폴라티셔츠 | 15000 | 34 | 100 | 2020-10-15 |
| 2 | 티셔츠 | 반소매 | 순면라운드 반팔티 | 15900 | 10 | 153 | 2020-09-15 |
| 3 | 티셔츠 | 반소매 | 순면라운드 반팔티 | 15900 | 10 | 153 | 2020-09-15 |
| 30 | 아우터 | 코트 | 양털 겨울 코트 | 50000 | 50 | 30 | 2020-10-31 |
+-----+--------+--------+-------------------+-------+--------+-------------+---------------+
4 rows in set (0.00 sec)
5. 각 type_a 별 판매량 (sale_amount) 합계 / 판매량이 많은 순으로 내림차순 정렬
mysql> select type_a, sum(sale_amount) as "판매량 합계" from product
-> group by type_a
-> order by sum(sale_amount) desc;
+------------+-------------+
| type_a | 판매량 합계 |
+------------+-------------+
| 티셔츠 | 439 |
| 아우터 | 117 |
| 패션운동복 | 89 |
+------------+-------------+
3 rows in set (0.00 sec)
6. 월별 판매량 합계 / 월별 오름차순 정렬
mysql> select month(register_data) as "월", sum(sale_amount) as '판매량' from product
-> group by month(register_data)
-> order by month(register_data);
+------+--------+
| 월 | 판매량 |
+------+--------+
| 9 | 306 |
| 10 | 130 |
| 11 | 209 |
+------+--------+
3 rows in set (0.00 sec)
mysql> select month(register_data) as "월", sum(sale_amount) as '판매량' from product
-> group by 월
-> order by 월;
+------+--------+
| 월 | 판매량 |
+------+--------+
| 9 | 306 |
| 10 | 130 |
| 11 | 209 |
+------+--------+
3 rows in set (0.00 sec)
7. 년.월로 판매량 합계 / 년.월로 날짜 순 오름차순 정렬
mysql> select date_format(register_data,'%Y-%m') as '날짜', sum(sale_amount) as '월별 판매량 합계'
-> from product
-> group by date_format(register_data,'%Y-%m')
-> order by date_format(register_data,'%Y-%m');
+---------+------------------+
| 날짜 | 월별 판매량 합계 |
+---------+------------------+
| 2020-09 | 306 |
| 2020-10 | 130 |
| 2020-11 | 209 |
+---------+------------------+
3 rows in set (0.00 sec)
mysql> select date_format(register_data,'%Y-%m') as '날짜', sum(sale_amount) as '월별 판매량 합계'
-> from product
-> group by 날짜
-> order by 날짜;
+---------+------------------+
| 날짜 | 월별 판매량 합계 |
+---------+------------------+
| 2020-09 | 306 |
| 2020-10 | 130 |
| 2020-11 | 209 |
+---------+------------------+
3 rows in set (0.00 sec)
8. type_a별로 합계를 구하고 그의 합계의 max값을 구하기
mysql> select max(sum) from (
-> select sum(sale_amount) as sum from product
-> group by type_a) as p; //p는 오류를 막기위한 임시 문자
+----------+
| max(sum) |
+----------+
| 439 |
+----------+
1 row in set (0.00 sec)
'DB > 명령프롬프트 - mysql' 카테고리의 다른 글
[MySQL] student table - 테이블의 값을 다른 테이블로 옮기기 (4학년 친구들을 졸업) (0) | 2023.03.27 |
---|---|
[MySQL] product table - 테이블 생성 예제 (0) | 2023.03.27 |
[MySQL] 테이블의 행 여러 개 한번에 삭제하기 (0) | 2023.03.27 |
[MySQL] 원하는 위치의 데이터 추출 limit (0) | 2023.03.27 |
[MySQL] Database 확인 show, use, select (0) | 2023.03.26 |