所有的sql聚合函数的应用例题 谢谢

作者&投稿:翠霄 (若有异议请与网页底部的电邮联系)
所有的sql聚合函数的应用例题 谢谢~

WHERE type = 'business'

下面是结果集:

-------------------------- -----------
6,281.25 30788

(1 row(s) affected)


------------------------------------------------
MAX 求最大值
例题:简单的就不写了
-------------------------------------------------
BINARY_CHECKSUM
在表中任一行上计算的 BINARY_CHECKSUM(*) 返回相同的值,只要随后没有修改行。

BINARY_CHECKSUM(*) 将为大多数(但不是全部)行更改返回不同的值,并可用于检测大多数行修

改。
例题:本例使用 BINARY_CHECKSUM 来检测 Northwind 数据库的 Products 表中一行的改变。

/*Get the checksum value before the values in the specific rows (#13-15) are changed.*/
USE Northwind
GO
CREATE TABLE TableBC (ProductID int, bchecksum int)
INSERT INTO TableBC
SELECT ProductID, BINARY_CHECKSUM(*)
FROM Products
/*TableBC contains a column of 77 checksum values corresponding to each row in the Products table.*/

--A large company bought products 13-15.
--The new company modified the products names and unit prices.
--Change the values of ProductsName and UnitPrice for rows 13, 14, and 15 of the Products table.*/
UPDATE Products
SET ProductName='Oishi Konbu', UnitPrice=5
WHERE ProductName='Konbu'

UPDATE Products
SET ProductName='Oishi Tofu', UnitPrice=20
WHERE ProductName='Tofu'

UPDATE Products
SET ProductName='Oishi Genen Shouyu', UnitPrice=12
WHERE ProductName='Genen Shouyu'

--Determine the rows that have changed.
SELECT ProductID
FROM TableBC
WHERE EXISTS (
SELECT ProductID
FROM Products
WHERE Products.ProductID = TableBC.ProductID
AND BINARY_CHECKSUM(*) TableBC.bchecksum)

下面是结果集:

ProductID
13
14
15

----------------------------------------------

应该这样是可以实现的,不过我未测试,你试下!

SELECT A.[姓名]
,B.[存款] - C.[消费] AS [余额]
FROM [资料表] A
,(SELECT [Id]
,SUM([存款]) AS [存款]
FROM [存款表]
GROUP BY [Id]) B
,(SELECT [Id]
,SUM([消费]) AS [消费]
FROM [消费表]
GROUP BY [Id]) C
WHERE A.[Id] = B.[Id]
AND A.[Id] = C.[Id]
AND B.[Id] = C.[Id]

但是对于只有存款而没有消费或者有消费而没有存款的人,这样查询是得到余额的,所以还要修改一下,修改后如下所示即可:

SELECT A.[姓名]
,ISNULL(B.[存款],0) - ISNULL(C.[消费],0) AS [余额]
FROM [资料表] A

LEFT JOIN (SELECT [Id]
,SUM([存款]) AS [存款]
FROM [存款表]
GROUP BY [Id]) B
ON A.[Id] = B.[Id]

LEFT JOIN (SELECT [Id]
,SUM([消费]) AS [消费]
FROM [消费表]
GROUP BY [Id]) C
ON A.[Id] = C.[Id]
AND B.[Id] = C.[Id]

1、数值型常用函数

 

 函数  返回值            样例           显示

ceil(n) 大于或等于数值n的最小整数  select ceil(10.6) from dual; 11

floor(n) 小于等于数值n的最大整数  select ceil(10.6) from dual; 10

mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2

power(m,n) m的n次方         select power(3,2) from dual; 9

round(n,m) 将n四舍五入,保留小数点后m位  select round(1234.5678,2) from dual; 1234.57

sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1

sqrt(n) n的平方根         select sqrt(25) from dual ; 5

2、常用字符函数

initcap(char) 把每个字符串的第一个字符换成大写  select initicap('mr.ecop') from dual; Mr.Ecop

lower(char) 整个字符串换成小写         select lower('MR.ecop') from dual; mr.ecop

replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott

substr(char,m,n) 取出从m字符开始的n个字符的子串  select substr('ABCDEF',2,2) from dual; CD

length(char) 求字符串的长度    select length('ACD') from dual; 3

|| 并置运算符    select 'ABCD'||'EFGH' from dual; ABCDEFGH

3、日期型函数

sysdate 当前日期和时间 select sysdate from dual;

last_day  本月最后一天 select last_day(sysdate) from dual;

add_months(d,n) 当前日期d后推n个月 select add_months(sysdate,2) from dual;

months_between(d,n) 日期d和n相差月数 select months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual;

next_day(d,day) d后第一周指定day的日期 select next_day(sysdate,'Monday') from dual;

day 格式  有  'Monday' 星期一  'Tuesday' 星期二

'wednesday'  星期三 'Thursday' 星期四 'Friday' 星期五

'Saturday' 星期六 'Sunday' 星期日

4、特殊格式的日期型函数

Y或YY或YYY 年的最后一位,两位,三位 select to_char(sysdate,'YYY') from dual;

Q 季度,1-3月为第一季度    select to_char(sysdate,'Q') from dual;

MM  月份数           select to_char(sysdate,'MM') from dual;

RM 月份的罗马表示 select to_char(sysdate,'RM') from dual; IV

month 用9个字符表示的月份名 select to_char(sysdate,'month') from dual;

ww 当年第几周         select to_char(sysdate,'ww') from dual;

w 本月第几周         select to_char(sysdate,'w') from dual;

DDD 当年第几天,一月一日为001 ,二月一日032 select to_char(sysdate,'DDD') from dual;

DD 当月第几天 select to_char(sysdate,'DD') from dual;

D 周内第几天 select to_char(sysdate,'D') from dual; 如 sunday

DY 周内第几天缩写       select to_char(sysdate,'DY') from dual; 如 sun

hh12 12小时制小时数       select to_char(sysdate,'hh12') from dual;

hh24 24小时制小时数       select to_char(sysdate,'hh24') from dual;

Mi 分钟数            select to_char(sysdate,'Mi') from dual;

ss 秒数             select to_char(sysdate,'ss') from dual;

select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from dua;

 

to_number() 将合法的数字字符串 select to_number('88877') from dual; 88877

to_char() 将数字转换为字符串  select to_char(88877) from dual; '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 education') FROM dual;

13. ASCII(string)

该命令是“American Standard Code for Information Interchange”的缩写。它是使用数字表示可打印字符的基本规则。该函数返回 “string”中第一个(最左边)字符的 ASCII 值。

示例 SELECT ASCII('APTECH') from dual;

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

聚合函数基于group by语句。
常见的有sum(),max(),min(),avg(),count(),wm_concat()


sql聚合函数有哪些
sql聚合函数有:求和函数(SUM)、计数函数(COUNT)、平均值函数(AVG)、最大值函数(MAX)、最小值函数(MIN)。1、求和函数(SUM)用于计算某列的总和。例如,如果你有一个包含销售数据的表格,你可以使用SUM函数来计算所有销售的总和。2、计数函数(COUNT)用于计算表中的行数或特定列中的非NULL...

sql的聚合函数有哪些
VAR_POP()和VAR_SAMP():计算特定列的总体方差。前者计算总体所有值的方差,后者计算总体样本的方差。FIRST_VALUE(),LAST_VALUE(),NTH_VALUE():在窗口函数中用于获取特定行的第一个或最后一个值,或指定位置的值。SUM()和其他聚合函数还可以与OVER()子句结合使用,以在数据集上执行更复杂的聚合操...

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

SQLServer中的聚合函数有哪些(属于sql聚合函数的是)
SQLServer中的聚合函数有:1.count()所有记录数 2.count(*)所有非null记录数 3.avg()某一列平均值 4.min()某一列最小值 5.max()某一列最大值 6.sum()某一列总和 使用方法:1.SELECTCOUNT(字段1)FROM表A统计字段1在表A中出现的次数 2.SELECT学号,SUM(各科成绩)FROMstudentGROUPBY学号用来...

sql 语句中那些是聚合函数?
1,1003);insert into test_group values(1,1004);insert into test_group values(1,1005);3、查询表中所有记录,select t.*, rowid from test_group t,4、编写sql,分别求聚合函数max、min、sum、avg,见:select max(value), min(value), sum(value), avg(value) from test_group t,

sql的聚合函数
SQL的聚合函数是一组特殊的函数,用于对一组值执行计算,并返回单个值,这些函数在数据汇总和统计中非常有用。使用聚合函数时,通常与GROUP子句结合使用,以根据特定列对结果集进行分组,并对每个组应用聚合函数。例如,如果你想知道每个部门的员工数量,你可以使用GROUP子句按部门分组,并使用COUNT函数计算...

开窗函数和聚合函数的区别是什么?
开窗函数和聚合函数是SQL中常用的两种函数,它们在处理数据时有着不同的作用和特点。首先,开窗函数是在每个窗口分区内进行计算的函数,它可以根据窗口的大小进行滑动或滚动操作,从而对每个分区内的数据进行计算。开窗函数通常与OVER子句一起使用,可以用于计算累计值、移动平均值、排名等。开窗函数的优点是...

having和group by有什么区别?
它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。2.group by:对select查询出来的结果集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个指定字段或者表达式的值。 在说group by的时候,我们还需要了解聚合函数,聚合函数是SQL语言中一种特殊的函数。

SQL语句中 聚合函数count()忽略空值么?
SQL语句函数baicount(),如果括号中是列名称,是忽略空值NULL的,即返回列的值的数目,不包含NULL值。COUNT函数,用于Excel中对给定数据集合或者单元格区域中数据的个数进行计数,其语法结构为COUNT(value1,value2, ...)。COUNT函数只能对数字数据进行统计,对于空单元格、逻辑值或者文本数据将被忽略,...

第六章 SQL聚合函数 JSON_ARRAYAGG
JSON_ARRAYAGG 函数将表中多行列的值组合成一个包含元素值的 JSON 数组。 因为在计算所有聚合字段之后,查询结果集中应用了一个 ORDER BY 子句,所以 ORDER BY 不能直接影响这个列表中的值序列。 在某些情况下, JSON_ARRAYAGG 结果可能是按顺序出现的,但是不应该依赖于这种顺序。 在给定...

邱县13711197712: 所有的sql聚合函数的应用例题 谢谢 -
苍梧昌派同: AVG( expression )返回集合中各值的平均值.将忽略 Null 值.参数 Int32、 Int64、Double 和 Decimal.返回值 expression 的类型.示例 SELECT VALUE SqlServer.AVG(p.ListPrice) FROM AdventureWorksEntities.Product as p CHECKSUM_...

邱县13711197712: sql聚合函数的应用 -
苍梧昌派同: 聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值.聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用.所有聚合函数均为确定性函数.也就是说,只要使用一组特定输入值调用聚合函数,该函...

邱县13711197712: sql聚合函数的应用
苍梧昌派同: 我们知道数据库通常包含大量数据,要从海量的数据中找到我们需要的某条记录无异于大海捞针,不过通过SQL语言我们可以找到很多方法从数据库中提取我们要查找的特定数据,就是通过这些方法我们才能找到“列举出七八两个月中购买了西...

邱县13711197712: sql 聚合函数的使用 -
苍梧昌派同: sql="select a.ID,a.title,count(b.ID) as total from table1 a left join table2 b on a.ID=b.AID where title like '%kkk%' group by a.ID,a.title having count(b.ID)>5 order by a.ID desc"应该可以吧,你试试

邱县13711197712: sql聚合函数的使用 -
苍梧昌派同: 应该这样是可以实现的,不过我未测试,你试下!SELECT A.[姓名],B.[存款] - C.[消费] AS [余额]FROM [资料表] A,(SELECT [Id],SUM([存款]) AS [存款]FROM [存款表]GROUP BY [Id]) B,(SELECT [Id],SUM([消费]) AS [消费]...

邱县13711197712: 怎么写求占百分比的sql 语句,内祥 -
苍梧昌派同: 此sql语句包括了两个聚合函数做除法求百分比,并保留两位小数,直接输出字符串形式的百分比.以及对case when在聚合函数的应用.

邱县13711197712: Access应用程序提供了几种种SQL聚合函数?急用,谢谢!! -
苍梧昌派同: 聚合函数: SUM(列名) 求出某一列属性值的总和 AVG(列名) 求出某一列属性值的平均值 MAX(列名) 求出某一列属性值的最大值 MIN(列名) 求出某一列属性值的最小值 COUNT(列名) 求出某一列属性值的个数 COUNT (*) 求出所有元组的个数

邱县13711197712: 关于sql聚合函数的一道题 -
苍梧昌派同: select top 1 bumen, avg(chengji) as avgchengji from yourtable group by bumen order by avgchengji desc sql中是没有every关键字的

邱县13711197712: 在SQL中的聚合函数 -
苍梧昌派同: 原则上,你要用group by,那么前面抽取的字段必须要作为分组依据,否则就需要sum,avg,max等函数的处理.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网