asp点击按钮sql列求和_SQL 汇总分析

0532a28186e513e21b6059273ddd18a0.png

293af208daf9740daf12e5c92551e98e.png

一.汇总/聚合函数

9433605da0f9ba552e53a65eaa82716a.png

汇总/聚合函数:计数count、求和sum、求平均avg、求最大值max、求最小值min

这五种汇总函数都可以使用distinct函数;除了count函数,其他汇总函数把null排除在外且算术函数只能对数值类型数据计算。

1.1 汇总/聚合函数

  • 计数 count函数 (求某列的行数)
/*【计算null以外的行数】*/
select count (<列名>)
from  <表名>;
/*【计算所有行数】*/
select count(*)
from <表名>;
/*【计算去除重复数据后的行数】*/
select count(distinct<列名>)
from<表名>;
  • 求和 sum函数 (null值排除在外,只能对数据类型计算)
/*【对某列数据求和】*/
select sum(列名) 
from <表名>;
/*【去除重复数据后的求和】*/
select sum(distinct<列名>)
from<表名>;
  • 求平均 avg函数(null值排除在外,只能对数据类型计算)
/*【求某列数据的平均值】*/
select avg(<列名>)
from <表名>;
/*【去除重复数据后的求平均】*/
select avg(distinct<列名>)
from<表名>;
  • 求最值 max、min函数 (null值排除在外)
/*【求某列数据的最大、最小值】*/
select max(列名),min(列名)
from (<表名>);
/*【去除重复数据后的求最值】*/
select max(distinct<列名>),min(distinct<列名>)
from<表名>;

1.2 汇总/聚合函数的应用

bf8e0253670de288e3fa1b0782d897a1.png

275cbcc4cbfd5786e1ade4fe670c7554.png

二.对表分组

SQL对表分组函数:group by

2.1 group by 函数

  • 指定的列称为聚合键或分组列;
  • null也会作为一组数据;
  • 聚合键之外的列名不能在select 子句中出现;
  • group by子句中不能写列的别名;
  • where 和gorup by 同时使用——where 中不能使用聚合函数

2.2 group by 函数的应用

c4a31cb5eb2fc83744cde63d66ce4588.png

89e3905ab087ae747c7214cb1704e1a4.png

12e72408d25a501062e38feb720b4052.png

运行顺序:1.from 从哪张表中查找数据——2.where 查询出符合条件的行—— 3.group by 数据分组——4.select 查询结果

三.对分组结果指定条件

SQL对分组结果指定条件函数:having

3.1 having 函数

  • where子句只能指定行的条件,不能指定组的条件,having子句用于指定分组结果的条件。
  • 写在group by之后,用来指定分组结果的条件;可以设定常数、聚合函数、group by子句中指定的列名(聚合键)为条件。

3.2 having 函数的应用

401cd6924241a422313fb0a89a379ccf.png

6d075d930411c24d676c0540a500243b.png

b381ea88d0d1acc91934841f8d96c5e6.png

d2425d488532795b48b4aeff94b3a8dd.png

运行顺序:1.from 从哪张表中查找数据——2.where 查询出符合条件的行—— 3.group by 数据分组——4.having 对分组的结果指定条件——5.select 查询结果

四.对查询结果排序

SQL对查询结果排序函数:order by

4.1 order by 函数

  • 升序(asc):从小到大,null在开头
  • 降序(desc):从大到小 ,null在末尾
  • 可以指定多个列排序,多个列排序规则为第一个列名先排序,如果该列存在相同的值,根据相同的值再接着按第二个列名进行排序,以此类推。
  • 可以使用聚合函数和 select子句中未出现的列

4.2 order by 函数的应用

99f784c760732453fdf3f255aa2b4060.png

56bbd64ae823fda60065c84e063bab33.png

运行顺序:from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——select:查询结果——order by:对查询结果进行排序

五.从查询结果中取出指定行

SQL从查询结果中取出指定行函数:limit

5.1 limit函数

  • 即从查询结果中显示指定的行数

5.2 limit函数的应用

ad5036d3a19b0bfe82f39e79fc3c3e0d.png

运行顺序:from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——select:查询结果——order by:对查询结果进行排序——limit:从查询结果中取出指定行

六.SQL语句的书写及其运行顺序

SQL语句 书写顺序:select:查询结果——from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——order by:对查询结果进行排序——limit:从查询结果中取出指定行

5a4bfdea9ddde07a5e2dd030805298dc.png

SQL语句 运行顺序:from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——select:查询结果——order by:对查询结果进行排序——limit:从查询结果中取出指定行

七.看懂SQL报错信息

7.1 SQL显示结果

  • SQL语句运行正确会直接显示查询结果的二维表格。
  • [Err]即为错误信息,代表运行的SQL语句存在错误
  • [Err]后面会显示错误原因,可以定位到错误区域。

02e5dd4a92c119e0f78896e23122ce2c.png

7.2 SQL常见报错

  • where子句使用汇总/聚合函数,where子句不能使用汇总/聚合函数。
  • having子句中使用列的别名,having子句在select子句前运行,所以不能使用列的别名。
  • 字符串类型的数字导致排序结果出现错误


八.SQLZOO:SELECT练习

b58efc997e114975f0d051dda9519555.png

6c438cf98f95c0a7883498bfb8c78b64.png

6a83caca4373a5da65d5dbc0fd664a89.png

44ea179da827eb424d0e557da379fd74.png

fc02fdeefe27cf2cd6d30a1441c887c6.png

b7f7ab26cf71edf9813655b284c3d145.png

0475e064ae7f3fa2ebb6cafe46a6cfbd.png

98e86ebf9901533c8732446bbaf07456.png

cee9e6f14e5cfdf7bf3ae5a396e13fc3.png

abdd081f55741294a703d14894c940a9.png

c72618803ebd6507fbdbbd2bf89a2395.png

7bcebee59a9ffc195c0b19e48dc07c87.png

ae7cb452122724d2db1c46b3269be32a.png

e7d5422a9fd4596427c2b242c7c1dbe3.png

8ba53892e3c93cd68fa898bc0194bea7.png

066a4e86dab2c133c77821593514320c.png

f0e9ea4b02d68354200033febf72a5cb.png

03ea568c354ac1964539ef3b1456ebdd.png

f7da5583ed968ced27aaf8ee11399d15.png

1f939e1a7d0f5e9454d243114f2d7bd8.png

2ccbe50443cc033a5646da08a89f514c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值