• 06:MySQL分组查询子查询笔记6


    本篇大纲:

    数据分组操作

    过滤分组

    分组结果排序

    select语句中字句的执行顺序

    子查询

    01:查询结果的分组操作

    • 分组允许把数据分为多个组,以便能对每个组进行聚集计算
    • 分组是在select语句的group by子句中建立的
    • 注意:group by 只是创建分组,但并不保证分组里面的数据的排序顺序,需要使用order by子句对分组里面的数据进行排序

    02:分组操作实例

    • 使用group by语句对select查询的结果进行分组,以便统计

    image.png

    1. select语句指定了两个列,vend_id 包含产品供应商的ID,num_prods为计算字段(使用count()函数)
    2. group by子句按vend_id 排序并分组数据,这导致对每个vend_id 而不是整个表计算

    num_prods一次,从而按照vend_id为单位,来计算每个组的总和

    注意:group by子句必须出现在where子句之后,order by子句之前

    03:过滤分组

    • 除了能用group by 分组数据外,MySQL还允许对分组指定条件,规定包含哪些分组,排除哪些分组
    • MySQL使用having子句来完成该操作
    • where子句过滤指定的行,having子句过滤指定的分组

    过滤分组实例一

    过滤总数大于等于2的分组

    image.png

    过滤分组实例二

    • where与having同时使用,列出具有2个(含)以上,价格为10(含)以上的产品供应商

    image.png

    04:SELECT中子句的顺序

    • select语句中使用的子句必须按照一定的次序,下图列出来各个子句在select语句中出现的次数

    image.png

    05:子查询

    • 子查询是嵌套在其他查询中的查询
    • 子查询实例(业务需求)

    image.png

    • 上述每个步骤都可以单独作为一个查询来执行,可以把一条select语句返回的结果用于另一条select语句的

    where子句中

    1. 查找包含物品TNT2的所有订单的编号

    image.png

    2.查找前一步骤出的订单编号的所有客户ID

    image.png

    3.使用子查询语句完成

    image.png

  • 相关阅读:
    Object-C支持多继承吗?可以实现多个接口吗?Category是什么?
    Action类为何要继承ActionSupport
    JAVA中的File类
    Oracle中奇怪的【不等于号】
    Oracle中INSTR、SUBSTR和NVL的用法
    【ERROR】Oracle11g两个监听同名进程的故障
    【ERROR】EXP-00091
    【ERROR】while loading shared libraries: /u01/app/oracle/product/11.2.0/lib/libclntsh.so.11.1: cannot
    【js】appendChild
    【js】正则表达式(II)
  • 原文地址:https://www.cnblogs.com/kelly11/p/13188853.html
Copyright © 2020-2023  润新知