MySQL Group by With 计数函数
本篇文章将讨论 SQL GROUP BY 子句以及使用 MySQL 的聚合函数。
GROUP BY 子句通常与一些聚合函数一起使用,例如 COUNT()、SUM()、MIN()、MAX() 和 AVG()。
MySQL 中的 GROUP BY 语法
在 MySQL 中,以下语法用于按某些列名称对结果视图进行分组。
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s);
GROUP BY and Aggregate Functions in MySQL
在 SQL 中,GROUP BY 子句可以与聚合函数一起使用,以根据特定条件对记录数进行计数、求和或聚合。
示例 1:假设我们有一个 ORDERS 表,想要统计按订单日期分组的订单数量。
我们可以通过使用以下查询来实现这一点。
SELECT COUNT(OrderID) as Count, OrderDate
FROM Orders
GROUP BY OrderDate;
上面的查询将通过按订单日期对订单进行分组来检索所有订单,并为每个订单日期显示一条记录。 因此,结果视图中的每条记录都将包含 OrderDate 和该日期所有 OrderID 的计数。
查询的输出应为:
示例 2:下面是另一个查找每个员工的总工资的示例。 假设我们使用下表来检索结果。
SELECT e.NAME, SUM(e.SALARY)
FROM Employee e
GROUP BY e.NAME;
在上面的查询中,我们首先从表中选择所有姓名,然后应用 SUM 函数计算每个姓名的薪水总和。 因此,每个名称对应的记录应该只有一条。
查询的输出应如下所示:
MySQL 中的 GROUP BY 和 HAVING 子句
HAVING 子句可以与 GROUP BY 子句结合使用,以根据特定条件进一步过滤结果,如以下查询所示。
SELECT e.NAME, SUM(e.SALARY)
FROM Employee e
GROUP BY e.NAME
HAVING SUM(SALARY)>44000;
这个查询和上面一样; 然而,唯一的区别是我们应用了 HAVING 子句来进一步过滤薪水,以仅包括最终薪水总和大于 44000 的记录。
此查询的结果如下所示:
在 MySQL 中对多列进行 GROUP BY Count()
COUNT()
聚合函数可以与具有多列的 GROUP BY 子句一起使用。 在这种情况下,结果首先按第一列分组,然后按下一列分组,以此类推。
之后,所有具有相同分组值的行都被计数并显示为一个。
假设我们要根据下表计算特定客户在特定日期的订单。
我们可以使用以下查询来做到这一点。
Select CustomerId, OrderDate, COUNT(OrderId) as OrdersByCustomerByDate
FROM ORDERS
GROUP BY CustomerId, OrderDate;
所有订单首先按 CustomerId 分组,然后按 OrderDate 分组。 之后,所有那些 CustomerIDs 和 OrderDates 相同的记录都被统计并显示为一条记录,如下面的查询结果所示。
$CustomerId = 1$
的客户有三个订单:一个是 2022 年 7 月 30 日的订单,两个是 2022 年 7 月 31 日的订单。
该客户在 2022 年 7 月 31 日的所有两个订单都汇总在查询结果的第二行,$OrdersByCustomerByDate = 2$
。 这同样适用于其余的记录。
相关文章
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。