在MySQL关联查询中,分组(GROUP BY)和别名(ALIAS)是两个强大的工具,它们能显著提升数据分析的能力和查询的可读性。
SELECT
c.customer_name AS name,
o.order_date AS date,
SUM(oi.quantity * oi.unit_price) AS total_spent
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
JOIN
order_items oi ON o.order_id = oi.order_id
SELECT
e1.employee_name AS employee,
e2.employee_name AS manager
FROM
employees e1
LEFT JOIN
employees e2 ON e1.manager_id = e2.employee_id
SELECT
p.product_name AS "产品名称",
c.category_name AS "类别",
AVG(r.rating) AS "平均评分"
FROM
products p
SELECT
d.department_name,
COUNT(e.employee_id) AS employee_count,
AVG(e.salary) AS avg_salary
FROM
departments d
LEFT JOIN
employees e ON d.department_id = e.department_id
GROUP BY
d.department_name
SELECT
YEAR(o.order_date) AS year,
MONTH(o.order_date) AS month,
c.country,
SUM(o.total_amount) AS revenue
FROM
orders o
JOIN
customers c ON o.customer_id = c.customer_id
GROUP BY
YEAR(o.order_date),
MONTH(o.order_date),
c.country
SELECT
p.product_name,
SUM(oi.quantity) AS total_quantity
FROM
products p
JOIN
order_items oi ON p.product_id = oi.product_id
GROUP BY
p.product_name
HAVING
total_quantity > 100
SELECT
CONCAT(e.first_name, ' ', e.last_name) AS employee_name,
d.department_name AS department,
COUNT(p.project_id) AS project_count,
SUM(p.budget) AS total_budget_managed
FROM
employees e
JOIN
departments d ON e.department_id = d.department_id
LEFT JOIN
projects p ON e.employee_id = p.manager_id
GROUP BY
employee_name,
department
HAVING
project_count > 0
ORDER BY
total_budget_managed DESC
通过合理使用分组和别名,可以构建出既高效又易于理解的复杂数据分析查询,为业务决策提供有力支持。