美文网首页
【SQL】(十):分组数据

【SQL】(十):分组数据

作者: Lottie2017 | 来源:发表于2020-07-13 16:31 被阅读0次

    本系列为自己学习时的笔记及心得体会,转载请注明出处。

    1、数据分组

    如果要返回每个供应商提供的产品数据,那就需要使用分组了。

    使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算。


    select vend_id,COUNT(*) AS num_prods

    FROM Products

    GROUP BY vend_id


    输出如下:

    返回每个供应商下的商品数量

    注意:GROUP BY 子句必须出现在WHERE子句之后,ORDER BY子句之前。

    2、过滤分组

    因为WHERE子句只能过滤行,所以我们这里使用HAVING 来过滤分组。WHERE的所有技术和选项都适用于HAVING。


    select vend_id,COUNT(*) AS num_prods

    FROM Products

    GROUP BY vend_id

    HAVING COUNT(*)>2


    返回有两个以上商品的供应商

    对比如下语句,可发现:

    △WHERE是在数据分组前进行过滤,HAVING在数据分组后进行过滤。


    select vend_id,COUNT(*) AS num_prods

    FROM Products

    where prod_price>=4

    GROUP BY vend_id

    HAVING COUNT(*)>2


    返回有两个以上 商品价格大于4的商品的供应商

    3、对结果进行排序

    使用ORDER BY。如下:

    先GROUP BY获取结果,后ORDER BY排序

    4、SELECT语句中子句的顺序

    SELECT-》FROM-》WHERE-》GROUP BY-》HAVING-》ORDER BY

    相关文章

      网友评论

          本文标题:【SQL】(十):分组数据

          本文链接:https://www.haomeiwen.com/subject/fxoacktx.html