Java教程

SQL-数据分组与过滤

本文主要是介绍SQL-数据分组与过滤,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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的订单号;
这篇关于SQL-数据分组与过滤的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!