where条件是一个结果集_MySQL进阶-例子解语句WHERE/GROUP BY Having/ORDER BY

本文详细介绍了SQL中的Where、GroupBy、Having和Orderby子句的使用顺序和功能。Where子句用于筛选记录,GroupBy用于按指定列对记录进行分组,Having则在分组后对结果进行条件过滤,而Orderby用于排序结果。通过示例展示了不同子句组合在员工订单数据中的应用,解释了它们如何影响查询结果。
摘要由CSDN通过智能技术生成

MySQL包含Where/Group By/having/Order by的语句顺序为:

SELECTcolumn_name(s)

FROM table_name

WHERE condition

GROUP BY column_name(s)

HAVING condition

ORDER BY column_name(s);


WHERE子句用于过滤记录。

WHERE子句仅用于提取满足指定条件的那些记录。

HAVING子句添加到SQL,因为WHERE不能与聚合函数一起使用。

GROUP BY语句将具有相同值的行分组为摘要行,例如“查找每个国家/地区的客户数量”。

GROUP BY语句通常与聚合函数(COUNT,MAX,MIN,SUM,AVG)一起使用,以将结果集按一列或多列分组。

ORDER BY关键字用于按升序或降序对结果集进行排序。

默认情况下,ORDER BY关键字以升序对记录进行排序。 要按降序对记录进行排序,请使用DESC关键字。

例子:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders

FROM Orders # 选取行列,对需要重命名的行列重命名

INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID

# 满足两边的employeeID互相匹配

WHERE LastName ='Davolio' OR LastName ='Fuller' #附加条件

GROUP BY LastName#按照last name来分组显示

HAVING COUNT(Orders.OrderID) >25;#显示数量大于25的

现在我们来分别比较不同代码显示的结果

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders

FROM Orders # 选取行列,对需要重命名的行列重命名

INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID

GROUP BY LastName#按照last name来分组显示

结果为:

df82ac24cd49f7312a2bc87c0cf5532c.png

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders

FROM Orders # 选取行列,对需要重命名的行列重命名

INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID

# 满足两边的employeeID互相匹配

GROUP BY LastName#按照last name来分组显示

HAVING COUNT(Orders.OrderID) >25;#显示数量大于25的

结果为:

64a73362eca7a405c84a7f122b5ee732.png

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders

FROM Orders # 选取行列,对需要重命名的行列重命名

INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID

# 满足两边的employeeID互相匹配

WHERE LastName ='Davolio' OR LastName ='Fuller' #附加条件

GROUP BY LastName#按照last name来分组显示

HAVING COUNT(Orders.OrderID) >25;#显示数量大于25的

结果为:

3de7efefe23d22c5139980db57cc5326.png

ORDER语句对结果的变化:

56ae062d7c143b00b41a7e53d919dd23.png

8174f5e0d1d90fb410ff9919173788cc.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值