zoukankan      html  css  js  c++  java
  • Mysql关键词之 group by的使用

    where -group by-having-order by-limit 

     总结借鉴 :https://blog.csdn.net/q1054261752/article/details/48156177

    group by 把重复的行字段归纳为一个字段 如name有两个张三 即归为一个张三 即缩为一行数据

    group by 字句总是跟在where 子句后面,但where 子句缺省时,跟在from 后面
    简单来讲  配合计算使用 先分组再计算
    单独使用 只显示每个分组的一条记录 意义不大 和集合函数配套使用最好
    先将其分组完再看每个分组的总数或平均等
    和group_concat(name)一起使用 分组完groupby sex;可以查询这个年龄段的所有人姓名
    可以很好的把分组情况展示出来
    加上having可以限制输出的结果 一般和聚合函数使用 比如查出年龄18的有几人 再用having
    限定人数大于多少的显示
    和with rollup一起使用 可以对聚合函数显示全部值 如下决定12的出现
    eg: SELECT 性别,COUNT(性别) FROM 表 GROUP BY 性别 WITH ROLLUP;

    性别   个数
    男:     10
    女:     2
             12
    where是对表或视图查询限定

    where 需在group by前面 先限定条件再分组 where age>18 group by name

     原表有10个人 但是先判断大于18的 所以刷掉了两个不符合的 再根据姓名分组

    having 是分组后再限定条件 一般和聚合函数一起使用 什么最高最低平均 数量大于多少啦什么的   where group by having三个关键词也可一起使用

    group by 和 orderby 在orderby前面使用 先分组再按顺序排列

     

    limit 0/1    单数字0查询0条 1查询1条

    limit 2,3    双数字 第一位代表2+1 从第三个id开始查询   第二位代表查询的总条数3条  大数据下第一位可用where id>2代替 提高查询效率 

    limit 在范围查询下可以提高查询效率

    比如登陆时确认用户名 如果在数据库中存在该用户名 找到对应的用户名停止检索 如不加limit会全盘检索再返回用户名

    inner join 返回关联的条件

    用on连接两表 如不写inner join用where连接两表

    left join 返回左表全部条件 右表没有显示null right join 相反

  • 相关阅读:
    视觉SLAM十四讲课后习题—ch13
    视觉SLAM中涉及的各种坐标系转换总结
    《视觉SLAM十四讲》笔记(ch13)
    《视觉SLAM十四讲》笔记(ch12)
    《视觉SLAM十四讲》课后习题—ch7(更新中……)
    安装opencv_contrib(ubuntu16.0)
    《视觉SLAM十四讲》笔记(ch8)
    如何将“您没有打开此文件的权限”的文件更改为可读写的文件
    《视觉SLAM十四讲》笔记(ch7)
    ubuntu16.04下跑通LSD-SLAM的过程记录
  • 原文地址:https://www.cnblogs.com/zhenxugan/p/11465945.html
Copyright © 2011-2022 走看看