上次我们已经学会要怎麽从资料库依照各个表取出我们想要的栏位,也可以透过条件筛选的方式过滤我们想要的资料。接下来,让我们更进一步来透过SQL语法整理我们想要的资料样貌。
如果我们想要将资料透过分组的形式呈现该怎麽办呢?
SELECT AVG(栏位名),COUNT(栏位名),SUM(栏位名),栏位名
FROM 表名
GROUP BY 栏位名;
没错!要使用到GROUP BY
,这个有点像是Excel里的枢纽分析表,可以透过选择自己想要的栏位,将数值做各种运算(加总、平均、计数等)来呈现。
而当我们使用了GROUP BY
後,又想要根据该表筛选对应的条件该怎麽办呢?此时或许你会说可以使用上次我们已经学过的WHERE
。可惜!差一点点,在使用GROUP BY
後并不能使用WHERE
,针对分组过後的筛选这时我们要用到另外一个指令HAVING
!
SELECT AVG(栏位名1),COUNT(栏位名2),SUM(栏位名3),栏位名4
FROM 表名
GROUP BY 栏位名4
HAVING 条件;
HAVING
和WHERE
还有一个差别就是,聚合函数(类似於AVG、SUM等)并不能放在WHERE
的条件哩,但却可以在HAVING
的条件里使用!
呼~~已经筛好想要的资料表,那针对这些资料如果想要做排序该怎麽办?
SELECT AVG(栏位名1),COUNT(栏位名2),SUM(栏位名3),栏位名4
FROM 表名
GROUP BY 栏位名4
HAVING 条件
ORDER BY 栏位名4;
在ORDER BY
的预设中是采升序排列(由小到大)语法为ASC
,如果想要降序排列(由大到小)的话,则要再加上DESC
。
SELECT AVG(栏位名1),COUNT(栏位名2),SUM(栏位名3),栏位名4
FROM 表名
GROUP BY 栏位名4
HAVING 条件
ORDER BY 栏位名4 DESC;
上述是本篇的内容,有很多函数和语法这里没有提及,因此这边推荐给大家一个超棒的学习资源-SQLbolt!
学习SQL常常遇到的第一步是要去哪里找资料库,要怎麽安装My SQL等等问题,但是透过这个线上教学平台,以上问题迎刃而解!透过章节安排,一步一步练习基础需要学习的语法,非常推荐新手的各位在上面学习,快的话一天就可以全部练习完罗!
推荐学习资源:
万用百科:
https://www.1keydata.com/tw/sql/sql.html
https://www.w3school.com.cn/sql/index.asp
在开始运用之前,先来了解几个机器学习上常用的概念。 首先是交叉验证法(Cross-valid...
嗯 API 所需要的参数内文杂凑 … 依照规格说明书的指示,需要以下的流程 (1) 先移除所有空值的...
相机 可以使用Intent的方式(可复习Activity内容),开启装置上的相机应用程序获取影像,回...
注:发文日和截图的日期不一定是同一天,所以价格计算上和当日不同,是很正常的。 买进中钢(2002) ...
企划发想过程 第一步 寻找需求 在一个企划的发想初期最先要做的事是找到市场,当你找到了市场才能继续做...