11.18
MySQL关于group by;count;distinct与order by 的使用
记录杨同学工作时对MySQL的使用以及自学过程
备注:mysql不区分大小写,但是鉴于规范性关键字部分最好用大写!
以下部分是小写哈哈哈哈哈
group by
group by 顾名思义组合,用xx来分组
-
项目组的要求:按照地区来分出供应商数量(不重复个数);供应商的数量;供应产品的种类;
-
拆分条件
条件一:按照地区分组 那就是group by 地区名字
条件二:不重复个数,那就采用distinct(供应商数量);同时要的是个数,那就是用count计数,最终这一小块就为 count(distinct 供应商数量)
条件三:按照地区的升序排列 -
合并所有条件
SELECT company_region,
COUNT(distinct project_name ),
COUNT(project_name),
COUNT(distinct company)
FROM园林汇总
GROUP BY company_region
ORDER BY company_region ASC;
结果如下
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)
FROM11.20-园林汇总
GROUP BY company_region
ORDER BY
CONVERT(company_region USING gbk)
;
今天的小杨又是很棒的一天!
ps:只是记录自己学习的过程,别来上纲上线奥,否则小心顺着你的网线咬死你!