美文网首页
聚合函数

聚合函数

作者: 御都 | 来源:发表于2019-08-02 07:40 被阅读0次

1 作用:将表中的一列数据作为一个整体,进行纵向计算。每个聚合函数的计算结果都是单行单列。
2 常见的聚合函数:
count:个数统计,统计一列中有多少个单元格
max:一列中的最大值
min:一列中的最小值
avg:一列的平均值
sum:一列数据的总和
3 聚合函数的计算是排除null值的,例子中没有对age的2个null进行统计

mysql> select * from employee order by salary,age,in_dpt;
+----+------+------+--------+--------+--------+
| id | name | age  | salary | phone  | in_dpt |
+----+------+------+--------+--------+--------+
|  2 | Jack |   24 |   2500 | 120120 | dpt2   |
|  1 | Tom  |   26 |   2500 | 119119 | dpt4   |
|  3 | Rose |   22 |   2800 | 114114 | dpt3   |
|  5 | Mary |   21 |   3000 | 100101 | dpt2   |
|  6 | Alex |   26 |   3000 | 123456 | dpt1   |
|  4 | Jim  |   35 |   3000 | 100861 | dpt1   |
| 12 | Tony | NULL |   3400 | 102938 | dpt3   |
| 10 | Mike |   23 |   3400 | 110110 | dpt4   |
|  8 | Rick |   24 |   3500 | 987654 | dpt3   |
|  7 | Ken  |   27 |   3500 | 654321 | dpt1   |
| 11 | Jobs | NULL |   3600 |  19283 | dpt2   |
|  9 | Joe  |   31 |   3600 | 110129 | dpt2   |
+----+------+------+--------+--------+--------+
12 rows in set (0.00 sec)

mysql> 
mysql> select count(age) from employee;
+------------+
| count(age) |
+------------+
|         10 |
+------------+
1 row in set (0.00 sec)

mysql> select count(id) from employee;
+-----------+
| count(id) |
+-----------+
|        12 |
+-----------+
1 row in set (0.00 sec)

mysql> 

3.1 解决办法
使用非空的键:主键(empoyee表中的id),count(*)---星号表示一行中不全是null就可以算作一个
使用IFNULL:count(IFNULL(age,0))

mysql> select count(*) from employee;
+----------+
| count(*) |
+----------+
|       12 |
+----------+
1 row in set (0.00 sec)

mysql> select count(ifnull(age,0)) from employee;
+----------------------+
| count(ifnull(age,0)) |
+----------------------+
|                   12 |
+----------------------+
1 row in set (0.00 sec)

4 例子

mysql> select max(age)from employee;
+----------+
| max(age) |
+----------+
|       35 |
+----------+
1 row in set (0.00 sec)

mysql> select min(age)from employee;
+----------+
| min(age) |
+----------+
|       21 |
+----------+
1 row in set (0.00 sec)

mysql> select sum(age)from employee;
+----------+
| sum(age) |
+----------+
|      259 |
+----------+
1 row in set (0.00 sec)

mysql> select avg(age)from employee;
+----------+
| avg(age) |
+----------+
|  25.9000 |
+----------+
1 row in set (0.00 sec)

相关文章

  • mysql子查询

    聚合函数 聚合函数对一组值执行计算,并返回单个值。 除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与...

  • Spark SQL原理之Aggregate实现原理

    聚合函数的分类 声明式聚合函数: 可以由Catalyst中的表达式直接构建的聚合函数,也是比较简单的聚合函数类型,...

  • sql语句

    聚合函数 分组,要和聚合函数一起用 常用聚合函数 group by xxx having xxx order by...

  • Django-数据库操作之聚合函数和排序函数

    一、聚合函数 使用aggregate()过滤器调用聚合函数,聚合函数包括:Avg平均,Count数量,Max最大,...

  • 04 - 聚合与排序

    聚合函数 聚合函数 通过 SQL 对数据进行某种操作或计算时需要使用函数。用于汇总的函数称为聚合函数或者聚集函数聚...

  • Pandas的聚合函数

    定义DataFrame 1.内置聚合函数 2.自定义聚合函数 3.字典传递给聚合函数

  • 聚合函数的进阶应用

    1.什么是聚合函数聚合函数aggregation function又称为组函数。 认情况下 聚合函数会对当前所在表...

  • Hive开窗函数

    1. 介绍 普通聚合函数聚合的行集是组,开窗函数聚合的行集是窗口。因此,普通聚合函数每组(Group by)只有一...

  • Hive开窗函数

    1. 介绍 普通聚合函数聚合的行集是组,开窗函数聚合的行集是窗口。因此,普通聚合函数每组(Group by)只有一...

  • SQL(MySQL、Oracle等)基础速览:聚合函数、复杂查询

    聚合函数 先来看一下聚合函数 聚合函数(包括COUNT(<列名>))会对NULL以外的对象进行汇总,COUNT(*...

网友评论

      本文标题:聚合函数

      本文链接:https://www.haomeiwen.com/subject/ehckdctx.html