GROUP BY用于按列分组数据并执行聚合计算,如SUM、COUNT、AVG等;HAVING用于过滤分组后的结果,而WHERE在分组前过滤原始数据,执行顺序为先WHERE、再GROUP BY、最后HAVING。

在MySQL中,
GROUP BY
GROUP BY
使用
GROUP BY
比如,我有一个
orders
customer_id
order_date
amount
SELECT
customer_id,
SUM(amount) AS total_spent
FROM
orders
GROUP BY
customer_id;这里,
customer_id
customer_id
amount
SUM
有时,你可能需要更细致的分组,比如想看每个客户在不同月份的消费情况。这时,
GROUP BY
SELECT
customer_id,
DATE_FORMAT(order_date, '%Y-%m') AS order_month,
SUM(amount) AS monthly_spent
FROM
orders
GROUP BY
customer_id,
order_month
ORDER BY
customer_id, order_month;这里要注意一点,
SELECT
GROUP BY
order_id
SELECT customer_id, order_id, SUM(amount) FROM orders GROUP BY customer_id;
order_id
order_id
还有,筛选分组后的数据,我们用
HAVING
WHERE
WHERE
HAVING
SELECT
customer_id,
SUM(amount) AS total_spent
FROM
orders
GROUP BY
customer_id
HAVING
total_spent > 1000;如果我想先过滤掉某个日期前的订单,再进行分组和聚合,那么
WHERE
HAVING
SELECT
customer_id,
SUM(amount) AS total_spent
FROM
orders
WHERE
order_date >= '2023-01-01' -- 先过滤2023年之前的订单
GROUP BY
customer_id
HAVING
total_spent > 500; -- 再过滤总消费低于500的客户这展示了它们各自的作用范围和执行顺序。
在使用
GROUP BY
COUNT()
COUNT(*)
COUNT(column_name)
COUNT(DISTINCT column_name)
-- 计算每个部门的员工总数 SELECT department_id, COUNT(*) AS total_employees FROM employees GROUP BY department_id; -- 计算每个部门有多少个不同的职位 SELECT department_id, COUNT(DISTINCT job_id) AS distinct_jobs FROM employees GROUP BY department_id;
SUM()
-- 计算每个产品的总销售额 SELECT product_id, SUM(quantity * price) AS total_sales FROM order_items GROUP BY product_id;
AVG()
-- 计算每个部门的平均薪资 SELECT department_id, AVG(salary) AS average_salary FROM employees GROUP BY department_id;
MAX()
MIN()
-- 找出每个客户的最高消费订单金额和最低消费订单金额 SELECT customer_id, MAX(amount) AS max_order_amount, MIN(amount) AS min_order_amount FROM orders GROUP BY customer_id; -- 找出每个部门最早入职的员工日期 SELECT department_id, MIN(hire_date) AS earliest_hire_date FROM employees GROUP BY department_id;
除了这些,还有像
GROUP_CONCAT()
VAR_POP()
STDDEV_POP()
很多初学者在使用
GROUP BY
WHERE
以上就是MySQL如何使用GROUPBY_MySQL分组查询与聚合函数应用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号