sql聚合函数有哪些
❶ sql Server 中如何使用聚合函数
根据我的使用经验,聚合函数主要是做统计用的,有以下两种形式比较常见:
1. SELECT COUNT(字段1) FROM 表A 统计字段1在表A中出现的次数
2. SELECT 学号,SUM(各科成绩) FROM student GROUP BY 学号 用来根据统计学生的总成绩
❷ sql server中什么是聚合函数
count() 所有记录数
count(*)所有非null记录数
avg() 某一列平均值
min() 某一列最小值
max() 某一列最大值
sum() 某一列总和
❸ select SQL 语言中常用的合计函数有哪些
聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:
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
❹ 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
检查的行进行分组和聚集计算。
❻ 在SQL中的聚合函数
可以直接用sno分组,但是select后面能用的字段只能是聚合函数(字段)或者是groupby子句中的字段。
如果在group by中不用sname,你可以这样写,但是你要看是否符合题目要求。
select min(sname)
from student s join sc
on s.sno=c.sno
group by sc.sno
having count(sc.sno)>3
❼ SQL Server中的聚合函数有哪些
SQL Server中的聚合函数有:
1.count() 所有记录数
2.count(*)所有非null记录数
3.avg() 某一列平均值
4.min() 某一列最小值
5.max() 某一列最大值
6.sum() 某一列总和
使用方法:
1. SELECT COUNT(字段1) FROM 表A 统计字段1在表A中出现的次数
2. SELECT 学号,SUM(各科成绩) FROM student GROUP BY 学号 用来根据统计学生的总成绩
❽ T-SQL中的聚合函数有哪些
Transact-SQL 提供下列聚合函数:AVGMINCHECKSUM_AGGSUMCOUNTSTDEVCOUNT_BIGSTDEVPGROUPINGVARMAXVARP
❾ 在sql中什么是聚合函数 啊
select sum(字段名) from 表名
sum 就是一个聚合函数,求某一字段的值
❿ 所有的sql聚合函数的应用例题 谢谢
1、数值型常用函数函数返回值样例显示
ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from al; 11
floor(n) 小于等于数值n的最大整数 select ceil(10.6) from al; 10
mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from al; 2
power(m,n) m的n次方 select power(3,2) from al; 9
round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from al; 1234.57
sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from al; 1
sqrt(n) n的平方根select sqrt(25) from al ; 5
2、常用字符函数
initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from al; Mr.Ecop
lower(char) 整个字符串换成小写select lower('MR.ecop') from al; mr.ecop
replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from al; Boycott
substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from al; CD
length(char) 求字符串的长度select length('ACD') from al; 3
|| 并置运算符 select 'ABCD'||'EFGH' from al; ABCDEFGH
3、日期型函数
sysdate 当前日期和时间 select sysdate from al;
last_day 本月最后一天 select last_day(sysdate) from al;
add_months(d,n)当前日期d后推n个月 select add_months(sysdate,2) from al;
months_between(d,n) 日期d和n相差月数 select months_between(sysdate,to_date('20020812','YYYYMMDD')) from al;
next_day(d,day) d后第一周指定day的日期 select next_day(sysdate,'Monday') from al;
day 格式有'Monday' 星期一'Tuesday' 星期二
'wednesday' 星期三 'Thursday' 星期四 'Friday' 星期五
'Saturday' 星期六 'Sunday' 星期日
4、特殊格式的日期型函数
Y或YY或YYY 年的最后一位,两位,三位 select to_char(sysdate,'YYY') from al;
Q 季度,1-3月为第一季度select to_char(sysdate,'Q') from al;
MM 月份数select to_char(sysdate,'MM') from al;
RM 月份的罗马表示 select to_char(sysdate,'RM') from al; IV
month 用9个字符表示的月份名 select to_char(sysdate,'month') from al;
ww 当年第几周select to_char(sysdate,'ww') from al;
w 本月第几周select to_char(sysdate,'w') from al;
DDD 当年第几天,一月一日为001 ,二月一日032 select to_char(sysdate,'DDD') from al;
DD 当月第几天 select to_char(sysdate,'DD') from al;
D 周内第几天 select to_char(sysdate,'D') from al; 如sunday
DY 周内第几天缩写select to_char(sysdate,'DY') from al; 如sun
hh12 12小时制小时数select to_char(sysdate,'hh12') from al;
hh24 24小时制小时数select to_char(sysdate,'hh24') from al;
Mi 分钟数 select to_char(sysdate,'Mi') from al;
ss 秒数 select to_char(sysdate,'ss') from al;
select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from a;to_number() 将合法的数字字符串 select to_number('88877') from al; 88877
to_char() 将数字转换为字符串 select to_char(88877) from al; '88877'set serveroupt on;
dbms_output.put_line('hello world')set heading off 由于正在创建数据文件,不需要表头
set pagesize 0 不需要分页
set linesize 80 设置行的最大尺寸
set echo off 告诉sql plus 在执行语句时,不要回显语句
set feedback off 禁止sql plus 显示有多少满足查询的行被检索到
col sales format 999,999,999
append 添加文本到当前行尾
change/old/new/ 在当前行用新的文本代替旧的文本
change/text 从当前行删除wenb
del 删除当前行
input text 在当前行之后添加一行
list 显示缓冲区中的所有行
list n 显示缓冲区中的第n行
list m n 显示m到n
5、字符函数
--------------------------------------------------------------------------------
字符函数主要用于修改字符列。这些函数接受字符输入,返回字符或数字值。Oracle 提供的一些字符函数如下。
1. CONCAT (char1, char2)
返回连接“char2”的“char1”。
示例 SELECT CONCAT( CONCAT(ename, ' is a '), job) FROM emp;
2. INITCAP(string)
将“string”的字符转成大写。
示例 Select INITCAP(ename) from emp;
3. LOWER (string)
将“string”转成小写。
示例 Select LOWER(ENAME) from emp;
4. LPAD(char1,n [,char2])
返回“char1”,左起由“char2”中的字符补充到“n”个字符长。如果“char1”比“n”长,则函数返回“char1”的前“n”个字符。
示例 SELECT LPAD(ename,15,'*') FROM emp;
5. LTRIM(string,trim_set)
从左边删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。
示例 SELECT LTRIM('abcdab','a') FROM DUAL;
6. REPLACE(string, if, then)
用 0 或其他字符代替字符串中的字符。“if”是字符或字符串,对于每个出现在“string”中的“if”,都用“then”的内容代替。
示例 SELECT REPLACE('JACK and JUE','J','BL') FROM DUAL;
7. RPAD(char1, n [,char2])
返回“char1”,右侧用“char2”中的字符补充到“n”个字符长。如果 “char1”比“n” 长,则函数返回“char1”的前“n”个字符。
示例 SELECT RPAD(ename,15,'*') FROM emp;
8. RTRIM(string,trim_set)
从右侧删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。
示例 SELECT RTRIM('abcdef', 'f') FROM DUAL;
9. SOUNDEX(char)
返回包含“char”的表意字符的字符串。它允许比较英语中拼写不同而发音类似的字。
示例 SELECT ename FROM emp
WHERE SOUNDEX(ename) = SoUNDEX('SMYTHE');
10. SUBSTR(string, start [,count])
返回“string”中截取的一部分。该命令截取“string”的一个子集,从“start”位置开始,持续“count”个字符。如果我们不指定“count”,则从“start”开始截取到“string”的尾部。
示例 SELECT SUBSTR('ABCDEFGIJKLM',3,4) FROM DUAL;
11. TRANSLATE(string, if, then)
“if”中字符的位置,并检查“then”的相同位置,然后用该位置的字符替换 “string”中的字符。
示例 SELECT TRANSLATE(ename,'AEIOU', 'XXXXX') FROM emp;
12. UPPER(string)
返回大写的“string”。
示例 SELECT UPPER('aptech computer ecation') FROM al;
13. ASCII(string)
该命令是“American Standard Code for Information Interchange”的缩写。它是使用数字表示可打印字符的基本规则。该函数返回 “string”中第一个(最左边)字符的 ASCII 值。
示例 SELECT ASCII('APTECH') from al;
14. INSTR (string, set[, start[, occurrence] ] )
该命令“string”中从“start”位置开始查找字符集合的位置,再查找“set”出现的第一次、第二次等等的“occurrence”(次数)。“start”的值也可以是负数,代表从字符串结尾开始向反方向搜索。该函数也用于数字和日期数据类型。
示例 SELECT INSTR('aptech is aptech','ap',1,2) FROM DUAL;
15. LENGTH(string)
返回“string”的长度值。
示例 SELECT ename, LENGTH(ename) FROM emp
WHERE empno = 7698;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lihan6415151528/archive/2009/08/06/4417974.aspx