• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解MySQL 数据分组

    创建分组

    分组是在SELECT语句中的GROUP BY 子句中建立的。

    例:

    SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id;

    GROUP BY

    过滤分组

    如果想要列出至少有两个订单的所有骨科,这样的数据就必须基于完整的分组而不是个别的行进行过滤。

    可以使用HAVING

    SELECT cust_id, COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >= 2;

    HAVING和WHERE的差别,WHERE在数据分组前进行过滤,HAVING在分组后进行过滤。当然,两个也可以在同一条语句中出现。

    列出具有2个(含)以上、价格为10(含)以上的产品的供应商

    SELECT vend_id, COUNT(*) AS num_prods FROM products WHERE prod_price >= 10 GROUP BY vend_id HAVING COUNT(*) >= 2;

    列出具有两个至上的产品的供应商

    SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id HAVING COUNT(*) >= 2;

    分组和排序

    ORDER BY GROUP BY
    排序产生的输出 分组行。但输出可能不是分组的顺序
    任意列都可以使用(非选择的列也可以) 只可能使用选择列或表达式列,而且必须使用每个选择列表达式
    不一定需要 如果与聚集函数一起使用列(表达式),则必须使用

    检索总计订单价格大于等于50的订单的订到号和总计订单价格

    SELECT order_num, SUM(quantity*item) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(quantity*item_price) >= 50;

    如果按总计订单价格排序输出

    SELECT order_num, SUM(quantity * item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(quantity * item_price) >= 50 ORDER BY ordertotal;

    SELECT子句的顺序

    子句 说明 是否必须使用
    SELECT 要返回的列或表达式
    FROM 从中检索数据的表 仅在从表选择数据时使用
    GROUP BY 分组说明 仅在按组计算聚集时使用
    WHERE 行级过滤
    HAVING 组级过滤
    ORDER BY 输出排序顺序
    LIMIT 要检索的行数

    以上就是详解MySQL 数据分组的详细内容,更多关于MySQL数据分组的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • MySql分组后随机获取每组一条数据的操作
    • 基于mysql实现group by取各分组最新一条数据
    • MySQL 子查询和分组查询
    • MySQL 分组查询和聚合函数
    • MySql Group By对多个字段进行分组的实现方法
    • 详解MySQL分组排序求Top N
    • mysql获取分组后每组的最大值实例详解
    • Mysql利用group by分组排序
    上一篇:详解mysql 组合查询
    下一篇:MySQL数据归档小工具mysql_archiver详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解MySQL 数据分组 详解,MySQL,数据,分组,详解,