1. 요일별, 주문방법별 주문 건수와 매출 - 코로나로 인한 배달 증가를 분석하기 위한 구문
SELECT SUBSTR(O.order_time, 1, 8) 날짜, O.eat_option 주문방법, COUNT(DISTINCT O.order_no) 주문건수, SUM(OM.amount * M.price) 매출
FROM Orders O, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
GROUP BY SUBSTR(O.order_time, 1, 8), O.eat_option;
💥 결과가 다르게 나옴 - 날짜가 문제인듯
✅ 해결
SELECT SUBSTR(O.order_time, 1, 10) 날짜, O.eat_option 주문방법, COUNT(DISTINCT O.order_no) 주문건수, SUM(OM.amount * M.price) 매출
FROM Orders O, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
GROUP BY SUBSTR(O.order_time, 1, 10), O.eat_option;
2. 고객 유형별(성별, 나이), 메뉴별 주문 건수와 매출
SELECT U.sex 성별, U.age 나이, M.name 메뉴, SUM(OM.amount) 주문건수, SUM(OM.amount * M.price) 매출
FROM Customer U, Orders O, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
and U.phone = O.customer
GROUP BY U.sex, U.age, M.name;
3. 단골 고객 관리 - 자주 방문한 손님 10명의 주문 내역 조회
SELECT O.customer 회원번호, C.name 코너이름, M.name 메뉴이름, O.eat_option 주문방법, O.pay_option 결제방법, O.order_time 주문시간
FROM (
SELECT O.customer RES
FROM Orders O
WHERE ROWNUM <= 10
GROUP BY O.customer
ORDER BY COUNT(O.customer) DESC
) A, Orders O, Corner C, Menu M, Order_Menu OM
WHERE O.customer = A.RES
and O.order_no = OM.orders
and OM.menu = M.menu_no
and M.corner = C.corner_no
GROUP BY O.customer, C.name, M.name, O.eat_option, O.pay_option, O.order_time;
💥 ERROR - ROWNUM 사용 방법이 다른 듯
💥 시행착오
https://baessi.tistory.com/104
[MySQL] ROWNUM 으로 번호 매기기, 역순 포함
Mysql을 쓰다 보면 Oracle처럼 rownum을 써야 하는 경우가 생깁니다. 따라서 오늘은 Mysql에서 ROWNUM의 사용 방법에 대해 소개해드리고자 합니다. 자 우선 간단한 TEST 테이블의 데이터입니다. REG_DATE(등
baessi.tistory.com
https://developer-jjun.tistory.com/23
[MySQL] ROWNUM을 사용하여 번호매기기
MySQL에서 Oracle처럼 ROWNUM 사용법 SET구문을 사용하여 ROWNUM 값을 초기화 후 조회 SET @rownum:=0; SELECT @rownum:=@rownum+1, b.* FROM buyingboard b WHERE절에서 초기화 SELECT @rownum:=@rownum+1, b.*..
developer-jjun.tistory.com
SET @ROWNUM:=0;
SELECT @ROWNUM:=@ROWNUM+1, O.customer 회원번호, C.name 코너이름, M.name 메뉴이름, O.eat_option 주문방법, O.pay_option 결제방법, O.order_time 주문시간
FROM (
SELECT O.customer RES
FROM Orders O
WHERE @ROWNUM <= 10
GROUP BY O.customer
ORDER BY COUNT(O.customer) DESC
) A, Orders O, Corner C, Menu M, Order_Menu OM
WHERE O.customer = A.RES
and O.order_no = OM.orders
and OM.menu = M.menu_no
and M.corner = C.corner_no
GROUP BY O.customer, C.name, M.name, O.eat_option, O.pay_option, O.order_time;
✅ 해결
https://m.blog.naver.com/jwlee0208/10096564579
[sql] 상위 n개 데이터 출력하기
----------------------------------------------------------------------------------------- 출처 : htt...
blog.naver.com
SELECT O.customer 회원번호, C.name 코너이름, M.name 메뉴이름, O.eat_option 주문방법, O.pay_option 결제방법, O.order_time 주문시간
FROM (
SELECT O.customer RES
FROM Orders O
GROUP BY O.customer
ORDER BY COUNT(O.customer) DESC
LIMIT 10
) A, Orders O, Corner C, Menu M, Order_Menu OM
WHERE O.customer = A.RES
and O.order_no = OM.orders
and OM.menu = M.menu_no
and M.corner = C.corner_no
GROUP BY O.customer, C.name, M.name, O.eat_option, O.pay_option, O.order_time;
4. 요일별, 코너별 주문 건수와 매출
SELECT SUBSTR(O.order_time, 1, 8) 날짜, C.name 코너이름, COUNT(DISTINCT O.order_no) 주문건수, SUM(OM.amount * M.price) 매출
FROM Orders O, Corner C, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
and M.corner = C.corner_no
GROUP BY SUBSTR(O.order_time, 1, 8), C.name;
💥 결과가 다르게 나옴 - 날짜가 문제인듯
✅ 해결
SELECT SUBSTR(O.order_time, 1, 10) 날짜, C.name 코너이름, COUNT(DISTINCT O.order_no) 주문건수, SUM(OM.amount * M.price) 매출
FROM Orders O, Corner C, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
and M.corner = C.corner_no
GROUP BY SUBSTR(O.order_time, 1, 10), C.name;
5. 코너별, 주문방법별 주문 건수와 매출
SELECT C.name 코너이름, O.eat_option 주문방법, COUNT(DISTINCT O.order_no) 주문건수, SUM(OM.amount * M.price) 매출
FROM Orders O, Corner C, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
and M.corner = C.corner_no
GROUP BY C.name, O.eat_option;
6. 메뉴별 매출
SELECT M.name 메뉴이름, SUM(OM.amount) 주문건수, SUM(OM.amount * M.price) 매출
FROM Orders O, Order_Menu OM, Menu M
WHERE O.order_no = OM.orders
and OM.menu = M.menu_no
GROUP BY M.name;