Phân tích dữ liệu kinh doanh bằng SQL
Michel Semaan
Data Scientist
WITH user_orders AS (
SELECT
user_id,
COUNT(DISTINCT order_id) AS orders
FROM meals
JOIN orders ON meals.meal_id = orders.meal_id
GROUP BY user_id)
SELECT
orders,
COUNT(DISTINCT user_id) AS users
FROM user_orders
GROUP BY orders
ORDER BY orders ASC
LIMIT 5;
Truy vấn
SELECT
CASE
WHEN meal_price < 4 THEN 'Bữa giá thấp'
WHEN meal_price < 6 THEN 'Bữa giá trung'
ELSE 'Bữa giá cao'
END AS price_category,
COUNT(DISTINCT meal_id)
FROM meals
GROUP BY price_category;
WITH user_revenues AS ( SELECT user_id, SUM(meal_price * order_quantity) AS revenue FROM meals JOIN orders ON meals.meal_id = orders.meal_id GROUP BY user_id)SELECT CASE WHEN revenue < 150 THEN 'Người dùng doanh thu thấp' WHEN revenue < 300 THEN 'Người dùng doanh thu trung' ELSE 'Người dùng doanh thu cao' END AS revenue_group, COUNT(DISTINCT user_id) AS users FROM user_revenues GROUP BY revenue_group;
revenue_group users
------------------ -----
Người dùng doanh thu thấp 473
Người dùng doanh thu trung 606
Người dùng doanh thu cao 225


Phân tích dữ liệu kinh doanh bằng SQL