>  기사  >  데이터 베이스  >  MySQL은 주문 시스템의 데이터 분석 기능을 구현합니다.

MySQL은 주문 시스템의 데이터 분석 기능을 구현합니다.

WBOY
WBOY원래의
2023-11-02 13:10:51903검색

MySQL 实现点餐系统的数据分析功能

MySQL은 다양한 애플리케이션에서 널리 사용되는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. 주문 시스템에서 데이터 분석 기능은 레스토랑 운영자에게 매우 중요합니다. 이 기사에서는 MySQL을 사용하여 주문 시스템의 데이터 분석 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 첨부합니다.

1. 데이터 테이블 생성
먼저 데이터베이스와 해당 데이터 테이블을 생성해야 합니다. 주문 시스템에 다음과 같은 기본 데이터 테이블이 있다고 가정합니다.

  1. Orders: 주문 번호, 고객 ID, 주문 시간, 총 금액 등을 포함하여 고객 주문과 관련된 정보를 저장합니다.

    CREATE TABLE orders (
      order_id INT PRIMARY KEY AUTO_INCREMENT,
      customer_id INT,
      order_time DATETIME,
      total_amount DECIMAL(10, 2)
    );
  2. Dishes: 요리 ID, 요리 이름, 가격 등 모든 요리에 대한 정보를 저장합니다.

    CREATE TABLE dishes (
      dish_id INT PRIMARY KEY AUTO_INCREMENT,
      dish_name VARCHAR(50),
      price DECIMAL(10, 2)
    );
  3. 주문 세부정보 테이블(order_details): 각 주문에 포함된 요리와 수량을 기록합니다.

    CREATE TABLE order_details (
      order_id INT,
      dish_id INT,
      quantity INT,
      PRIMARY KEY (order_id, dish_id)
    );

2. 테스트 데이터 삽입
다음으로 데이터 분석을 위해 데이터 테이블에 일부 테스트 데이터를 삽입해야 합니다. 다음과 같은 테스트 데이터가 있다고 가정합니다.

주문 테이블(주문):

INSERT INTO orders (customer_id, order_time, total_amount) VALUES
(1, '2021-01-01', 25.50),
(2, '2021-01-02', 50.00),
(3, '2021-01-03', 35.75);

요리 테이블(요리):

INSERT INTO dishes (dish_name, price) VALUES
('宫保鸡丁', 18.00),
('鱼香肉丝', 16.50),
('红烧肉', 23.80);

주문 세부정보 테이블(order_details):

INSERT INTO order_details (order_id, dish_id, quantity) VALUES
(1, 1, 2),
(1, 2, 1),
(2, 2, 3),
(3, 1, 1),
(3, 3, 2);

3. 기본 데이터 통계
데이터 분석을 위해 MySQL 사용 이번에는 몇 가지 기본 SQL 쿼리문을 통해 필요한 데이터를 얻을 수 있습니다. 다음은 일반적으로 사용되는 데이터 통계 쿼리 예시입니다.

  1. 주문 수량 및 총 판매량 계산

    SELECT COUNT(*) AS order_count, SUM(total_amount) AS total_sales FROM orders;
  2. 각 요리의 총 판매량 및 총 판매량 계산

    SELECT dishes.dish_name, SUM(order_details.quantity) AS total_quantity, SUM(order_details.quantity * dishes.price) AS total_sales
    FROM dishes
    JOIN order_details ON dishes.dish_id = order_details.dish_id
    GROUP BY dishes.dish_id;
  3. 주문 수량 쿼리 특정 고객 및 총 소비량

    SELECT customer_id, COUNT(*) AS order_count, SUM(total_amount) AS total_expense
    FROM orders
    WHERE customer_id = 1;

4. 고급 데이터 분석
기본적인 데이터 통계 기능 외에도 보다 복잡한 데이터 분석을 원할 경우 MySQL의 집계 기능, 조건부 필터링, 정렬 등의 기능을 사용할 수 있습니다. 조합하여. 다음은 고급 데이터 분석을 위한 몇 가지 쿼리 예입니다.

  1. 가장 인기 있는 요리 쿼리(판매가 가장 많음)

    SELECT dishes.dish_name, SUM(order_details.quantity) AS total_quantity
    FROM dishes
    JOIN order_details ON dishes.dish_id = order_details.dish_id
    GROUP BY dishes.dish_id
    ORDER BY total_quantity DESC
    LIMIT 3;

    이 쿼리는 판매가 가장 많은 상위 3개 요리를 반환합니다.

  2. 고객별 소비량 순위를 쿼리합니다

    SELECT customer_id, SUM(total_amount) AS total_expense,
        RANK() OVER (ORDER BY SUM(total_amount) DESC) AS expense_rank
    FROM orders
    GROUP BY customer_id;

    이 쿼리는 고객별 소비량과 순위를 반환합니다.

  3. 총 판매량과 일별 평균 판매량을 쿼리합니다.

    SELECT DATE(order_time) AS order_date, SUM(total_amount) AS total_sales, AVG(total_amount) AS average_sales
    FROM orders
    GROUP BY DATE(order_time);

    이 쿼리는 총 판매량과 일별 평균 판매량을 반환합니다.

결론적으로, MySQL의 다양한 기능과 구문을 활용하여 주문 시스템의 데이터 분석 기능을 구현할 수 있습니다. 실제 적용에서는 특정 요구 사항과 비즈니스 시나리오를 기반으로 추가 데이터 분석 및 최적화를 수행할 수 있습니다. MySQL은 다양한 데이터 분석 요구 사항을 충족하는 강력한 도구와 기능을 제공합니다.

위 내용은 MySQL은 주문 시스템의 데이터 분석 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.