架构社区SSM社区SSH社区

【MySQL】SQL语句的基本执行顺序详解

2019-06-14  本文已影响2人  慕凌峰

一、基本SQL语句

1、基本执行顺序

2、说明

select ... from. where.. group by.. having.. order by.. limit [offset,] (rows)
from... where...group by... having.... select ... order by... limit

3、WHERE、HAVING 的区别

1、实例

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region

先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(population)>1000000
ORDER BY sum(population) desc

<font color='red'>用having就一定要和group by连用,
用group by不一有having (它只是一个筛选条件用的)</font>


二、聚合函数

1、常用聚合函数

SELECT  Name AS '射击手' ,
        AVG(Score) AS '平均值' ,
        STDEV(Score) AS '标准偏差' ,
        VAR(Score) AS '方差' ,
        MAX(Score) AS '最大值' ,
        MIN(Score) AS '最小值' ,
        MAX(Score) - MIN(Score) AS '极差值' ,
        STDEV(Score) / AVG(Score) AS '变异系数' ,
        COUNT(Score) AS '次数'
FROM    @t1
GROUP BY Name

2、为什么要用标准差?

方差和标准差时表示一组数据离散程度的最好指标,是最常用的差异量数。

3、变异系数:

变异系数又称“标准差率”,是衡量资料中各观测值变异程度的另一个统计量。当进行两个或多个资料变异程度的比较时,如果度量单位与平均数相同,可以直接利用标准差来比较。如果单位和(或)平均数不同时,比较其变异程度就不能采用标准差,而需采用标准差与平均数的比值(相对值)来比较。

4、极差值:

指一组数据中最大数据与最小数据的差,在统计中常用极差来刻画一组数据的离散程度。

4、注意

三、实例

SELECT a.tenantId,COUNT(1) 
FROM fsmuserex a 
WHERE !a.deleted 
GROUP BY a.tenantId 
HAVING COUNT(1) > 10 
ORDER BY COUNT(1) DESC;
上一篇 下一篇

猜你喜欢

热点阅读