当前位置:首页 » 操作系统 » 数据库聚集函数

数据库聚集函数

发布时间: 2022-10-10 05:22:47

A. 数据库聚合函数count和count的区别

count 是用于统计查询结果的个数,属于聚合函数。

可以通过以下方面进行了解:

利用临时表进行测试

sql">withtbas
(
select1nfromalunionall
select1nfromalunionall
selectnullnfromalunionall
select2nfromalunionall
select3nfromal
)

1, 获取查询结果总行数

selectcount(*)fromtb;--5

由tb数据可见,tb中共有5条数据。

2,查询非null字段的行数

selectcount(n)fromtb;--4

该语句查询字段n不为null的总数量,由tb可见,n有一行为null,所以结果为4.

需要注意,若n为非null字段,查询总数时,使用count(*) 比 count(n)速度要快。

原因是count(字段)在统计时,若字段为null,计数不加。若字段不是null,计数+1.

3, 统计非空字段的非重复的内容数量

selectcount(distinctn)fromtb;--3

由于count(n)为获取非null字段数量。distinct为去掉重复值。所以,此结果为先去掉n的重复值再统计。

4,计算字段的非重复数量

selectcount(distinctnvl(n,4)fromtb;--5

先提供null值为一个n中不存在的值,然后去掉重复值进行统计。

效果等同于

selectcount(distinctn)+1fromtb;

B. 聚集函数的介绍

和大多数其它关系数据库产品一样, PostgreSQL 支持聚集函数。 一个聚集函数从多个输入行中计算出一个结果。 比如,我们有在一个行集合上计算 count(数目), sum(和),avg(均值), max(最大值)和min(最小值)的函数。

C. sql聚合函数有哪些

聚集函数
和大多数其它关系数据库产品一样,PostgreSQL 支持聚集函数。一个聚集函数从多个输入行中计算出一个结果。比如,我们有在一个行集合上计算 count(数目), sum(总和), avg(均值), max(最大值), min(最小值)的函数。

比如,我们可以用下面的语句找出所有低温中的最高温度:

SELECT max(temp_lo) FROM weather; max
-----
46
(1 row)如果我们想知道该读数发生在哪个城市,可能会用:

SELECT city FROM weather WHERE temp_lo = max(temp_lo); -- 错!不过这个方法不能运转,因为聚集函数 max 不能用于 WHERE 子句中。存在这个限制是因为 WHERE 子句决定哪些行可以进入聚集阶段;因此它必需在聚集函数之前计算。不过,我们可以用其它方法实现这个目的;这里我们使用子查询:

SELECT city FROM weather
WHERE temp_lo = (SELECT max(temp_lo) FROM weather); city
---------------
San Francisco
(1 row)这样做是可以的,因为子查询是一次独立的计算,它独立于外层查询计算自己的聚集。

聚集同样也常用于 GROUP BY 子句。比如,我们可以获取每个城市低温的最高值:

SELECT city, max(temp_lo)
FROM weather
GROUP BY city; city | max
---------------+-----
Hayward | 37
San Francisco | 46
(2 rows)这样每个城市一个输出。每个聚集结果都是在匹配该城市的行上面计算的。我们可以用 HAVING 过滤这些分组:

SELECT city, max(temp_lo)
FROM weather
GROUP BY city
HAVING max(temp_lo) < 40; city | max
---------+-----
Hayward | 37
(1 row)这样就只给出那些 temp_lo 值曾经有低于 40 度的城市。最后,如果我们只关心那些名字以"S"开头的城市,我们可以用:

SELECT city, max(temp_lo)
FROM weather
WHERE city LIKE 'S%'
GROUP BY city
HAVING max(temp_lo) < 40;语句中的 LIKE 执行模式匹配,在节9.7里有解释。

理解聚集和 SQL 的 WHERE 和 HAVING 子句之间的关系非常重要。WHERE 和 HAVING 的基本区别如下:WHERE 在分组和聚集计算之前选取输入行(它控制哪些行进入聚集计算),而 HAVING 在分组和聚集之后选取输出行。因此,WHERE 子句不能包含聚集函数;因为试图用聚集函数判断那些行将要输入给聚集运算是没有意义的。相反,HAVING 子句总是包含聚集函数。当然,你可以写不使用聚集的 HAVING 子句,但这样做没什么好处,因为同样的条件可以更有效地用于 WHERE 阶段。

在前面的例子里,我们可以在 WHERE 里应用城市名称限制,因为它不需要聚集。这样比在 HAVING 里增加限制更加高效,因为我们避免了为那些未通过 WHERE 检查的行进行分组和聚集计算。

D. 在数据库中什么叫聚集

按照字面理解就差不多了,虽不是严谨的定义,但如下理解也够用了。
聚集就是汇总一批细节数据,形成一个粗犷数据,说得有营养点儿,称作“浓缩”也凑乎。
与之连用的是聚集函数,SQL标准提到了五个,分别是count、sum、avg、min、max,其中count就是不管细节的各条记录是什么样子,给点个记录总数,另外四个也是不管精致的数据是什么,求出笼统的总和、算术平均值、最小值、最大值,有的数据库还扩充了标准方差、协方差等聚集函数以支持更多的分析需求。

E. 数据库查询,关于聚合函数 max()的用法。

  1. MAX()/MIN()是指SQL中的最大/最小值函数

  2. 因为聚合函数处理的是数据组,在本例中,MAX函数将整个TEACHER表看成一组

  3. 而TNAME、DNAME和TSEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义

  4. MAX()和MIN()函数不仅可以作用于数值型数据,也可以作用于字符串或是日期时间数据类型的数据。

  5. SQL 如下:

  6. 实例MAX()函数用于字符型数据

  7. 如下面代码:

  8. SELECT MAX (a) AS MAXNAME

  9. FROMA

F. sql聚合函数有哪些

聚集函数
和大多数其它关系数据库产品一样,PostgreSQL
支持聚集函数。一个聚集函数从多个输入行中计算出一个结果。比如,我们有在一个行集合上计算
count(数目),
sum(总和),
avg(均值),
max(最大值),
min(最小值)的函数。
比如,我们可以用下面的语句找出所有低温中的最高温度:
SELECT
max(temp_lo)
FROM
weather;
max
-----
46
(1
row)如果我们想知道该读数发生在哪个城市,可能会用:
SELECT
city
FROM
weather
WHERE
temp_lo
=
max(temp_lo);
--
错!不过这个方法不能运转,因为聚集函数
max
不能用于
WHERE
子句中。存在这个限制是因为
WHERE
子句决定哪些行可以进入聚集阶段;因此它必需在聚集函数之前计算。不过,我们可以用其它方法实现这个目的;这里我们使用子查询:
SELECT
city
FROM
weather
WHERE
temp_lo
=
(SELECT
max(temp_lo)
FROM
weather);
city
---------------
San
Francisco
(1
row)这样做是可以的,因为子查询是一次独立的计算,它独立于外层查询计算自己的聚集。
聚集同样也常用于
GROUP
BY
子句。比如,我们可以获取每个城市低温的最高值:
SELECT
city,
max(temp_lo)
FROM
weather
GROUP
BY
city;
city
|
max
---------------+-----
Hayward
|
37
San
Francisco
|
46
(2
rows)这样每个城市一个输出。每个聚集结果都是在匹配该城市的行上面计算的。我们可以用
HAVING
过滤这些分组:
SELECT
city,
max(temp_lo)
FROM
weather
GROUP
BY
city
HAVING
max(temp_lo)
<
40;
city
|
max
---------+-----
Hayward
|
37
(1
row)这样就只给出那些
temp_lo
值曾经有低于
40
度的城市。最后,如果我们只关心那些名字以"S"开头的城市,我们可以用:
SELECT
city,
max(temp_lo)
FROM
weather
WHERE
city
LIKE
'S%'
GROUP
BY
city
HAVING
max(temp_lo)
<
40;语句中的
LIKE
执行模式匹配,在节9.7里有解释。
理解聚集和
SQL

WHERE

HAVING
子句之间的关系非常重要。WHERE

HAVING
的基本区别如下:WHERE
在分组和聚集计算之前选取输入行(它控制哪些行进入聚集计算),而
HAVING
在分组和聚集之后选取输出行。因此,WHERE
子句不能包含聚集函数;因为试图用聚集函数判断那些行将要输入给聚集运算是没有意义的。相反,HAVING
子句总是包含聚集函数。当然,你可以写不使用聚集的
HAVING
子句,但这样做没什么好处,因为同样的条件可以更有效地用于
WHERE
阶段。
在前面的例子里,我们可以在
WHERE
里应用城市名称限制,因为它不需要聚集。这样比在
HAVING
里增加限制更加高效,因为我们避免了为那些未通过
WHERE
检查的行进行分组和聚集计算。

G. 关于sql聚集函数的正确描述是

SQL允许定义函数、过程和方法。定义可通过SQL的有关过程的组件,也可以通过外部的程序设计语言,如Java,C或C++。SQL标准所定义的语法,与大多数数据库实现的自身的非标准版本的语法不同。函数和过程允许“业务逻辑”作为存储过程记录在数据库中,并在数据库中执行。

求和函数SUM( )用于对数据求和,返回选取结果集中所有值的总和。语法如下。

SELECT SUM(column_name)

FROM table_name

说明:SUM()函数只能作用于数值型数据,即列column_name中的数据必须是数值型的。

(7)数据库聚集函数扩展阅读:

理解聚集和SQL的 WHERE 以及 HAVING 子句之间的关系对我们非常重要。 WHERE 和 HAVING 的基本区别如下: WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。因此,WHERE 子句不能包含聚集函数; 因为试图用聚集函数判断那些行输入给聚集运算是没有意义的。

相反,HAVING 子句总是包含聚集函数。 (严格说来,你可以写不使用聚集的 HAVING 子句, 但这样做只是白费劲。同样的条件可以更有效地用于 WHERE 阶段。)

H. 聚集函数是什么

和大多数其它关系数据库产品一样, PostgreSQL 支持聚集函数。 一个聚集函数从多个输入行中计算出一个结果。 比如,我们有在一个行集合上计算 count(数目), sum(和),avg(均值), max(最大值)和min(最小值)的函数。

比如,我们可以用下面的语句找出所有记录中低温中的最高温度

SELECT max(temp_lo) FROM weather;

max----- 46(1 row)

如果我们想知道该读数发生在哪个城市,我们可以用

SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG不过这个方法不能运转,因为聚集 max 不能用于 WHERE 子句中。 (存在这个限制是因为 WHERE 子句决定哪些行可以进入聚集阶段;因此它必需在聚集函数之前计算。) 不过,我们通常都可以用其它方法实现我们的目的;这里我们就可以使用子查询:

SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

city--------------- San Francisco(1 row)这样做是 OK 的,因为子查询是一次独立的计算,它独立于外层的查询计算出自己的聚集。

聚集同样也常用于 GROUP BY 子句。比如, 我们可以获取每个城市低温的最高值

SELECT city, max(temp_lo) FROM weather GROUP BY city;

city | max--------------- ----- Hayward | 37 San Francisco | 46(2 rows)这样给我们每个城市一个输出。 每个聚集结果都是在匹配该城市的行上面计算的。 我们可以用 HAVING 过滤这些分组:

SELECT city, max(temp_lo) FROM weather GROUP BY city HAVING max(temp_lo) < 40;

city | max--------- ----- Hayward | 37(1 row)这样就只给出那些 temp_lo 数值曾经有低于 40 度温度的城市。 最后,如果我们只关心那些名字以 "S" 开头的城市,我们可以用

SELECT city, max(temp_lo) FROM weather WHERE city LIKE 'S%'(1) GROUP BY city HAVING max(temp_lo) < 40; LIKE 做模式匹配,在 Section 里有解释。

理解聚集和SQL的 WHERE 以及 HAVING 子句之间的关系对我们非常重要。 WHERE 和 HAVING 的基本区别如下: WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。 因此,WHERE 子句不能包含聚集函数; 因为试图用聚集函数判断那些行输入给聚集运算是没有意义的。 相反,HAVING 子句总是包含聚集函数。 (严格说来,你可以写不使用聚集的 HAVING 子句, 但这样做只是白费劲。同样的条件可以更有效地用于 WHERE 阶段。)

I. sql 聚合函数有哪些

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:
1. AVG 返回指定组中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定组中项目的数量。
例:select count(prd_no) from sales

3. MAX 返回指定数据的最大值。
例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定数据的最小值。
例:select prd_no,min(qty) from sales group by prd_no

5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no

6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales

7. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

8. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no

9. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

10. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。

11. STDEV 返回给定表达式中所有值的统计标准偏差。
例:select stdev(prd_no) from sales

12. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。
例:select stdevp(prd_no) from sales

13. VAR 返回给定表达式中所有值的统计方差。
例:select var(prd_no) from sales

14. VARP 返回给定表达式中所有值的填充的统计方差。
例:select varp(prd_no) from sales

J. 数据库聚集函数如何设置

常用的聚合函数
1 count 2 sum 3 avg 4 max 5 min
使用规范时 默认的是all
distinct 指定所有的唯一非空值行
count (行的数目)
select count ( 列或者*) from 表
sum (总和)
select sum(计数规范)from

分组 (group by)
select 列a , 聚合函数 from 表 where 过滤条件 group by 列a (以列a来分组)

过滤聚合函数(having)
select 列a , 聚合函数 from 表 where 过滤条件 group by 列a having 聚合函数过滤条件

要注意的是 SQL语句的执行顺序
(5)select 列a , 聚合函数 (1) from 表 (2) where 过滤条件 (3) group by 列a (4) having 聚合函数过滤条件 (6) order by

热点内容
一万级净化车间有哪些配置 发布:2025-05-15 12:16:41 浏览:96
javazip解压加密 发布:2025-05-15 12:15:02 浏览:941
dnf服务器存放什么信息 发布:2025-05-15 12:11:07 浏览:216
办公室视频剧本脚本 发布:2025-05-15 12:03:51 浏览:490
编译失败什么意思 发布:2025-05-15 11:58:18 浏览:87
lcs脚本官网 发布:2025-05-15 11:56:15 浏览:88
三国志战略版打9级矿什么配置 发布:2025-05-15 11:41:29 浏览:953
安卓加速器怎么关 发布:2025-05-15 11:38:16 浏览:465
密码锁坏了如何打开 发布:2025-05-15 11:30:19 浏览:838
怎样增加共享文件夹连接数量 发布:2025-05-15 11:24:50 浏览:962