手机版

SQL中分组、拥有、排序和区分的注意事项

时间:2021-08-03 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库类大小:1.7M语言:英语评分:6.6标签:立即下载言归正传,如下SQL语句所示:

按请求从请求方法组中选择计数(*)作为计数、请求、方法,方法具有(请求='FC。OCEAN . job . server . cbizzbkheader ' OR REQUEST=' FC。ocean . job . server . cbizozdocheader ')和COUNT(*)3按请求订购

注意事项:

别名COUNT3不能用于HAVING之后的条件。否则,列名“COUNT”无效。

having子句中的每个元素不必出现在选择列表中

如果陈述被写成:

按请求顺序从请求方法组中选择计数(*)作为计数、请求、方法

然后就会有报道:

选择列表中的列“REQUESTMETH.method”无效,因为它不包含在聚合函数或GROUP BY子句中。

注:1。使用“分组依据”子句时,“选择”列表中的非汇总列必须是“分组依据”列表中的项目。2.分组时,所有空值都被分组到一个组中。3.复杂的演示测试、显示标题和SELECT列表中的位置标签通常不允许出现在GROUPBY列表中。

例如:

按请求从请求组中选择请求、方法、计数(*)作为计数,按请求选择2个订单

错误消息是:每个GROUP BY表达式必须包含至少一个列引用。

在分组依据中使用排序依据的注意事项:

按请求、按请求的方法顺序、方法从请求方法组中选择计数(*)作为计数

-这是允许的,并且ORDER BY之后的字段包含在GROUP BY子句中

从请求方法组中选择计数(*)作为计数按请求顺序按计数(*) DESC

-这是允许的。ORDER BY之后的字段包含在聚合函数中,结果集与以下语句相同

从请求方法组中选择计数(*)作为计数按请求顺序按计数DESC

-这是允许的,这与HAVING不同。HAVING之后不允许将具有聚合函数的别名作为过滤条件

按请求顺序按方法从请求方法组中选择计数(*)作为计数

-这是一个错误:ORDER BY子句中的列“REQUESTMETH.method”无效,因为它不包含在聚合函数或GROUP BY子句中。

在SELECT DISTINCT中使用ORDER BY的注意事项:

按图书名称从图书订单中选择不同的图书

将报告上述声明:

-如果指定了SELECT DISTINCT,ORDER BY子句中的项目必须出现在SELECT列表中。

因为上面的陈述是相似的

按图书名称从图书组中选择图书订单

实际上,错误信息是:

专栏' BOOK。- ORDER BY子句中的“BookName”无效,因为它不包含在聚合函数或GROUP BY子句中。

应改为:

按图书名称从图书订单中选择不同的图书编号、图书名称

从图书中选择不同的图书编号、图书名称

按图书编号、图书名称从图书组中选择图书编号、图书名称

以上两句的查询结果一致,DISTINCT语句可以等价转换为GROUP BY语句

版权声明:SQL中分组、拥有、排序和区分的注意事项是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。