ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL-数据分组与过滤

2022-02-20 13:03:37  阅读:167  来源: 互联网

标签:GROUP SQL 订单号 过滤 分组 子句 order


A、分组语句:GROUP BY
1、如果分组列中包含NULL值行,会将其作为一个分组返回;
2、GROUP BY语句必须位于WHERE 子句之后,ORDER BY子句之前;
3、group By 子句中列出的每一列都必须是检索列或是有效表达式,不能是聚集函数。
若在select中使用表达式,须在GROUP BY子句中指定相同的表达式,不能使用别名。
B、过滤分组语句:HAVING
1、所有适用于WHERE的规则适用于HAVING
2、两者差别在于,前者过滤行,后者配套GROUP BY过滤组
3、基于过滤分组的作用,不能指定列名,或者某列
C、目前所学各子句之间的前后次序:
SELECT 要返回的咧或者表达式
FROM 从中检索数据的表
WHERE 行级过滤
GROUP BY 分组说明
HAVING 组级过滤
ORDER BY 输出排序

例子:

1、SELECT order_num, COUNT(*)AS order_lines    #order_num 为订单号,并指定别名order_lines订单行数;
FROM Orderitems
GROUP BY order_num
ORDER BY order_lines;  #对所有订单号进行分组返回行数并按订单号排序;

 2、

SELECT order_num, SUM(item_price*quantity) AS total_price
FROM OrderItems
GROUP BY order_num
HAVING SUM(item_price*quantity) >= 1000
ORDER BY order_num;    #按订单号排序并返回所有订单中总价格大于1000的订单号;

标签:GROUP,SQL,订单号,过滤,分组,子句,order
来源: https://www.cnblogs.com/Tikker/p/15915270.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有