Py学习  »  DATABASE

关于mysql的小杨同学-11.20

Auraro_y • 3 年前 • 178 次点击  

11.18
MySQL关于group by;count;distinct与order by 的使用

记录杨同学工作时对MySQL的使用以及自学过程
备注:mysql不区分大小写,但是鉴于规范性关键字部分最好用大写!
以下部分是小写哈哈哈哈哈

group by

group by 顾名思义组合,用xx来分组

  1. 项目组的要求 :按照地区来分出供应商数量(不重复个数);供应商的数量;供应产品的种类;

  2. 拆分条件
    条件一:按照地区分组 那就是group by 地区名字
    条件二:不重复个数,那就采用distinct(供应商数量);同时要的是个数,那就是用count计数,最终这一小块就为 count(distinct 供应商数量)
    条件三:按照地区的升序排列

  3. 合并所有条件
    SELECT company_region,
    COUNT(distinct project_name ),
    COUNT(project_name),
    COUNT(distinct company)
    FROM 园林汇总
    GROUP BY company_region
    ORDER BY company_region ASC;
    结果如下 ASCWEISHENGXU
    4.order by+你想要按照什么来排序
    ASC为升序 DESC为降序 在数据库中默认为升序,所以大可不必多打三个英文字母,毕竟时间就是金钱,三个字母的钱也要珍惜!!
    今日疑问:
    升序为什么不是安徽在第一个?
    今日做答:
    是因为mysql是UTF-8
    其中一个中文字符占3个字节,一个数字或英文占1个字符
    转化为gbk编码
    convert(company_region USING gbk)
    如下
    SELECT company_region,
    COUNT(distinct project_name ),
    COUNT(project_name),
    COUNT(distinct company)
    FROM 11.20-园林汇总
    GROUP BY company_region
    ORDER BY
    CONVERT(company_region USING gbk)
    ;
    在这里插入图片描述
    今天的小杨又是很棒的一天!
    ps:只是记录自己学习的过程,别来上纲上线奥,否则小心顺着你的网线咬死你!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/99152
 
178 次点击