当前位置:首页 » 数据仓库 » 数据库中的组函数有哪些
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库中的组函数有哪些

发布时间: 2022-09-06 01:12:05

sql 语句中那些是聚合函数

常见聚合函数,max(最大)、min(最小)、sum(求和)、avg(平均)等,

示例如下,

1、创建测试表,

create table test_group(id number, value number);

㈡ 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 检查的行进行分组和聚集计算。

㈢ 数据库常用函数

1、系统信息函数

系统信息函数用来查询MySQL数据库的系统信息。

函数代码:

SELECT VERSION()

->5.0.67-community-nt

CONNECTION_ID() 返回服务器的连接数

DATABASE()、SCHEMA 返回当前数据库名

USER()、SYSTEM_USER()返回当前用户

2、日期时间函数

MySQL的日期和时间函数主要用于处理日期时间。

函数代码:

CURDATE(),CURRENT_DATE() curdate() 返回当前日期

SELECT CURDATE()

->2014-12-17

CURTIME(),CURRENT_TIME curtime()
返回当前时间

SELECT CURTIME()
->15:59:02

3、字符串函数

函数代码:

CHAR_LENGTH(s) char_length()返回字符串s的字符数

SELECT CHAR_LENGTH('你好123') -- 5

CONCAT(s1,s2,...) concat(s1,s2...)

将字符串s1,s2等多个字符串合并为一个字符串

4、加密函数

加密函数是MySQL用来对数据进行加密的函数。

函数代码:

PASSWORD(str)

该函数可以对字符串str进行加密,一般情况下,PASSWORD(str)用于给用户的密码加密。

SELECT PASSWORD('123')

->*

5、数学函数

数学函数主要用于处理数字,包括整型、浮点数等。

函数代码:

ABS(x) abs(x)返回x的绝对值

SELECT ABS(-1) -- 返回1

CEIL(x),CEILING(x) cell(x),celling(x)

返回大于或等于x的最小整数

SELECT CEIL(1.5) -- 返回2

㈣ 聚组函数是什么,有哪些

就是用于计算汇总一些数据库信息,对数据库的数据进行统计,得到统计的结果的一些函数
比如max,min,avg 等 像excel里的分类汇总

具体地址
http://hi..com/xionghy/blog/item/629186cb3aab11fd52664fdf.html

㈤ php 常用的数组函数都有哪些 作用是什么有什么特点 怎么使用

php常用的数组函数的作用特点如下:


  1. array_change_key_case -- 返回字符串键名全为小写或大写的数组

  2. array_chunk -- 将一个数组分割成多个

  3. array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

  4. array_count_values -- 统计数组中所有的值出现的次数

  5. array_diff_assoc -- 带索引检查计算数组的差集

  6. array_diff_key -- 使用键名比较计算数组的差集

  7. array_diff_uassoc -- 用用户提供的回调函数做索引检查来计算数组的差集

  8. array_diff_ukey -- 用回调函数对键名比较计算数组的差集

  9. array_diff -- 计算数组的差集

  10. array_fill_keys -- 使用指定的键和值填充数组

  11. array_fill -- 用给定的值填充数组

  12. array_filter -- 用回调函数过滤数组中的单元

  13. array_flip -- 交换数组中的键和值

  14. array_intersect_assoc -- 带索引检查计算数组的交集

  15. array_intersect_key -- 使用键名比较计算数组的交集

  16. array_intersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较索引

  17. array_intersect_ukey -- 用回调函数比较键名来计算数组的交集

  18. array_intersect -- 计算数组的交集

  19. array_key_exists -- 检查给定的键名或索引是否存在于数组中

  20. array_keys -- 返回数组中所有的键名

  21. array_map -- 将回调函数作用到给定数组的单元上

  22. array_merge_recursive -- 递归地合并一个或多个数组

  23. array_merge -- 合并一个或多个数组

  24. array_multisort -- 对多个数组或多维数组进行排序

  25. array_pad -- 用值将数组填补到指定长度

  26. array_pop -- 将数组最后一个单元弹出(出栈)

  27. array_proct -- 计算数组中所有值的乘积

  28. array_push -- 将一个或多个单元压入数组的末尾(入栈)

  29. array_rand -- 从数组中随机取出一个或多个单元

  30. array_rece -- 用回调函数迭代地将数组简化为单一的值

  31. array_replace_recursive -- 使用传递的数组递归替换第一个数组的元素

  32. array_replace -- 使用传递的数组替换第一个数组的元素

  33. array_reverse -- 返回一个单元顺序相反的数组

  34. array_search -- 在数组中搜索给定的值,如果成功则返回相应的键名

  35. array_shift -- 将数组开头的单元移出数组

  36. array_slice -- 从数组中取出一段

  37. array_splice -- 把数组中的一部分去掉并用其它值取代

  38. array_sum -- 计算数组中所有值的和

  39. array_udiff_assoc -- 带索引检查计算数组的差集,用回调函数比较数据

  40. array_udiff_uassoc -- 带索引检查计算数组的差集,用回调函数比较数据和索引

  41. array_udiff -- 用回调函数比较数据来计算数组的差集

  42. array_uintersect_assoc -- 带索引检查计算数组的交集,用回调函数比较数据

  43. array_uintersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较数据和索引

  44. array_uintersect -- 计算数组的交集,用回调函数比较数据

  45. array_unique -- 移除数组中重复的值

  46. array_unshift -- 在数组开头插入一个或多个单元

  47. array_values -- 返回数组中所有的值

  48. array_walk_recursive -- 对数组中的每个成员递归地应用用户函数

  49. array_walk -- 对数组中的每个成员应用用户函数

  50. array -- 新建一个数组

  51. arsort -- 对数组进行逆向排序并保持索引关系

  52. asort -- 对数组进行排序并保持索引关系

  53. compact -- 建立一个数组,包括变量名和它们的值

  54. count -- 计算数组中的单元数目或对象中的属性个数

  55. current -- 返回数组中的当前单元

  56. each -- 返回数组中当前的键/值对并将数组指针向前移动一步

  57. end -- 将数组的内部指针指向最后一个单元

  58. extract -- 从数组中将变量导入到当前的符号表

  59. in_array -- 检查数组中是否存在某个值

  60. key -- 从关联数组中取得键名

  61. krsort -- 对数组按照键名逆向排序

  62. ksort -- 对数组按照键名排序

  63. list -- 把数组中的值赋给一些变量

  64. natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序

  65. natsort -- 用“自然排序”算法对数组排序

  66. next -- 将数组中的内部指针向前移动一位

  67. pos -- current 的别名

  68. prev -- 将数组的内部指针倒回一位

  69. range -- 建立一个包含指定范围单元的数组

  70. reset -- 将数组的内部指针指向第一个单元

  71. rsort -- 对数组逆向排序

  72. shuffle -- 将数组打乱

  73. sizeof -- count 的别名

  74. sort -- 对数组排序

  75. uasort -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

  76. uksort -- 使用用户自定义的比较函数对数组中的键名进行排序

  77. usort -- 使用用户自定义的比较函数对数组中的值进行排序


关于如何使用,那是要根据使用者需求来衡量,不能一言概括

使用语法如下:

<?php
$arr=array('Hello','World!');
$arr=implode(',',$arr);

echo$arr;
?>

结果是:HelloWorld!


如果你想更多的了解php的数组函数,我建议你详细地去看看php手册

php手册官网:http://www.php.net/manual/zh/index.php

㈥ oracle 的组函数有哪些

AVG 返回平均值
COUNT 返回记录的数量
MAX 返回最大值
MIN 返回最小值
SUM 返回总值
STDDEV 返回标准差
VARIANCE 返回统计方差

㈦ mysql中常用的聚合函数有哪些

一、AVG

AVG(col):返回指定列的平均值

二、COUNT

COUNT(col):返回指定列中非NULL值的个数

三、MIN/MAX

MIN(col):返回指定列的最小值

MAX(col):返回指定列的最大值

四、SUM

SUM(col):返回指定列的所有值之和

五、GROUP_CONCAT

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | expr}

[ASC | DESC] [,col_name ...]]

[SEPARATOR str_val])

返回由属于一组的列值连接组合而成的结果

(7)数据库中的组函数有哪些扩展阅读

增加新用户

(注意:和上面不同,下面的因为是 MySQL 环境中的命令,所以后面都带一个分号作为命令结束符)

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

例1、增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:

grant select,insert,update,delete on *.* to test1@“%” Identified by “abc”;

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户 test2 密码为 abc,让他只可以在 localhost 上登录,并可以对数据库 mydb 进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grant select, insert, update, delete on mydb.* to test2@localhost identified by “abc”;

如果你不想 test2 有密码,可以再打一个命令将密码消掉。

grant select, insert, update, delete on mydb.* to test2@localhost identified by “”;

下面来看看 MySQL 中有关数据库方面的操作。注意:必须首先登录到 MySQL 中,以下操作都是在 MySQL 的提示符下进行的,而且每个命令以分号结束。

㈧ 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

㈨ ORACLE中什么是组函数

组(多行)函数
与单行函数相比,oracle提供了丰富的基于组的,多行的函数。这些函数可以在select或select的having子句中使用,当用于select子串时常常都和GROUP BY一起使用。
AVG([{DISYINCT|ALL}])
返回数值的平均值。缺省设置为ALL.
SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal) FROM scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413
COUNT({*|DISTINCT|ALL} )
返回查询中行的数目,缺省设置是ALL,*表示返回所有的行。
MAX([{DISTINCT|ALL}])
返回选择列表项目的最大值,如果x是字符串数据类型,他返回一个VARCHAR2数据类型,如果X是一个DATA数据类型,返回一个日期,如果X是numeric数据类型,返回一个数字。注意distinct和all不起作用,应为最大值与这两种设置是相同的。
MIN([{DISTINCT|ALL}])
返回选择列表项目的最小值。
STDDEV([{DISTINCT|ALL}])
返回选者的列表项目的标准差,所谓标准差是方差的平方根。
SUM([{DISTINCT|ALL}])
返回选择列表项目的数值的总和。
VARIANCE([{DISTINCT|ALL}])
返回选择列表项目的统计方差。
用GROUP BY给数据分组
正如题目暗示的那样组函数就是操作那些已经分好组的数据,我们告诉数据库用GROUP BY怎样给数据分组或者分类,当我们在SELECT语句的SELECT子句中使用组函数时,我们必须把为分组或非常数列放置在GROUP BY子句中,如果没有用group by进行专门处理,那么缺省的分类是将整个结果设为一类。
select stat,counter(*) zip_count from zip_codes GROUP BY state;ST ZIP_COUNT-- ---------AK 360AL 1212AR 1309AZ 768CA 3982
在这个例子中,我们用state字段分类;如果我们要将结果按照zip_codes排序,可以用ORDER BY语句,ORDER BY子句可以使用列或组函数。
select stat,counter(*) zip_count from zip_codes GROUP BY state ORDER BY COUNT(*) DESC;ST COUNT(*)-- --------NY 4312PA 4297TX 4123CA 3982
用HAVING子句限制分组数据
现在你已经知道了在查询的SELECT语句和ORDER BY子句中使用主函数,组函数只能用于两个子串中,组函数不能用于WHERE子串中,例如下面的查询是错误的:
错误SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' AND SUM(sale_amount)>10000 GROUP BY sales_clerk
这个语句中数据库不知道SUM()是什么,当我们需要指示数据库对行分组,然后限制分组后的行的输出时,正确的方法是使用HAVING语句:
SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' GROUP BY sales_clerkHAVING SUM(sale_amount)>10000;

㈩ 数据库函数有哪些有人吗

有 Funciton , 也就是函数
有 Procere , 也就是存储过程
有 Package, 也就是 代码包 (包含 head 和 body 两部分, 可以理解为一个包里面,定义多个 存储过程或函数)
有 Types, 也就是 自定义数据类型
有 Triggers, 也就是 触发器
有 Jobs, 也就是 数据库作业 (定期执行的)
有 Table , 也就是表 (表有 普通表, 临时表, 分区表)
有 Index, 也就是索引
有 Constraint, 也就是 约束 ( 也就是 某个表里面的某一列, 必须满足什么约束条件)
有 View, 也就是 视图
有 Materialized View, 叫 “物化视图”, 这个有点复杂的。
有 Sequence , 叫 序列号。
有 User , 叫 用户
有 Profile , 叫 用户属性文件 (用于限制 每个用户 占有数据库资源的限制)
有 Synonyms, 叫 “同义词” (用于 便捷地访问 其他用户下的对象)
有 Database link 叫 “链接数据库” (用于访问 其他机器上的 Oracle 数据库)
有 TableSpace 叫 表空间 (用于 存放表数据的)
有 CURSOR 叫 游标, 用于 存储过程里面, 遍历数据的。