Ⅰ sql中统计字符串长度的函数是什么
SQL中统计字符串长度的函数是:函数len(string)。
比如:
select len('abc')输出3
select len('abcde')输出5
字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。
常用的字符串函数有:
ASCII():返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
CHAR():将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。
LOWER()和UPPER():LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
STR():把数值型数据转换为字符型数据。
STR (<float_expression>[,length[, <decimal>]])
length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。
当length 或者decimal 为负值时,返回NULL;
当length 小于小数点左边(包括符号位)的位数时,返回length 个*;
先服从length ,再取decimal ;
当返回的字符串位数小于length ,左边补足空格。
LTRIM() 把字符串头部的空格去掉。
RTRIM() 把字符串尾部的空格去掉。
left():LEFT (<character_expression>, <integer_expression>)返回character_expression 左起 integer_expression 个字符。
RIGHT():RIGHT (<character_expression>, <integer_expression>)返回character_expression 右起 integer_expression 个字符。
SUBSTRING():SUBSTRING (<expression>, <starting_ position>, length)返回从字符串左边第starting_ position 个字符起length个字符的部分。
CHARINDEX():返回字符串中某个指定的子串出现的开始位置。CHARINDEX (<’substring_expression’>, <expression>)
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
此函数不能用于TEXT 和IMAGE 数据类型。
PATINDEX():返回字符串中某个指定的子串出现的开始位置。PATINDEX (<’%substring _expression%’>, <column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。
QUOTENAME():返回被特定字符括起来的字符串。QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
REPLICATE():返回一个重复character_expression 指定次数的字符串。REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。
REVERSE():将指定的字符串的字符排列顺序颠倒。REVERSE (<character_expression>) 其中character_expression 可以是字符串、常数或一个列的值。
REPLACE():返回被替换了指定子串的字符串。REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替换在string_expression1 中的子串string_expression2。
SPACE():返回一个有指定长度的空白字符串。SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。
STUFF():用另一子串替换字符串指定位置、长度的子串。
STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>):如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。
拓展资料:
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
Ⅱ SQL:连续天数的计算方法
连续出现3次的值
有时候SQL版本不够高
方法:用 DISTINCT 和 WHERE 语句
算法
连续出现的意味着相同数字的 Id 是连着的,由于这题问的是至少连续出现 3 次,我们使用 Logs 并检查是否有 3 个连续的相同数字。
Id Num Id Num Id Num
1 1 2 1 3 1
注意:前两列来自 l1 ,接下来两列来自 l2 ,最后两列来自 l3 。
然后我们从上表中选择任意的 Num 获得想要的答案。同时我们需要添加关键字 DISTINCT ,因为如果一个数字连续出现超过 3 次,会返回重复元素。
MySQL
Ⅲ sql count统计:我想统计1个月每个机构登录次数。
这个简单,只需要将你最终的SQL改一下形式明升就可以了,
select x.Name,COUNT(1) cnt from (
SELECT a.Name FROM Logs l,Users s,Account a
WHERE l.UserID=s.UserID and s.AccountID = a.AccountID and
convert(varchar(7),l.Created,120) = '2016-07' and a.ParentID=32
GROUP BY day(l.Created),a.Name
) x group by x.Name
你试一下轿氏这样得激帆老到的是不是你想要的结果。
Ⅳ 请问oracle数据库的算log函数的sql语句怎么写
格式:log(base,number) 即 log(底明或迟,数值激李)
返回以团启base为底,输入值number的对数。
例: log(10,100) 返回 2
Ⅳ 弱问题,在sql中向上取整的函数是什么
【四舍五入取整截取】:select round(54.56,0)
【向下取整截取】:SELECT FLOOR(54.56)
【向上取整截取】:SELECT CEILING(13.15)
Ⅵ 急求SQL数据库中能用到的关键字及其用处最好能举例说明一下!
我在别人的blog上摘录的,你可以上去看看,能学到很多知识了
http://www.badguy.name/article.asp?id=702
上一篇 下一篇连接,能看到很多sql文章。
希望对你有帮助。
1.数据定义语言(DDL)
数据定义语言是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括Create、Alter和Drop等语句。在SQL Server 2000中,数据库对象包括表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用Create、Alter、Drop等语句来完成。
2.数据操纵语言(DML)
数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括Select、Insert、Update、Delete等。在默认情况下,只有sysadmin、dbcreator、db_owner或db_datawriter等角色的成员才有权利执行数据操纵语言。
3.数据控制语言(DCL)
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。
DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。
REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。
----------------------------------------------
4. 系统存储过程
系统存储过程是SQL Server系统创建的存储过程,它的目的在于能够方便地从系统表中查询信息,或者完成与更新数据库表相关的管理任务或其它的系统管理任务。系统存储过程可以在任意一个数据库中执行。系统存储过程创建并存放于系统数据库master中,并且名称以sp_或者xp_开头。
sp_addtype:用于定义一个用户定义数据类型。
sp_configure:用于管理服务器配置选项设置。
xp_sendmail:用于发送电子邮件或寻呼信息。
sp_stored_proceres:用于返回当前数据库中的存储过程的清单。
sp_help:用于显示参数清单和其数据类型。
sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象。
sp_helptext:用于显示存储过程的定义文本。
sp_rename:用于修改当前数据库中用户对象的名称
3.数据控制语言(DCL)
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。
DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。
REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。
----------------------------------------------
4. 系统存储过程
系统存储过程是SQL Server系统创建的存储过程,它的目的在于能够方便地从系统表中查询信息,或者完成与更新数据库表相关的管理任务或其它的系统管理任务。系统存储过程可以在任意一个数据库中执行。系统存储过程创建并存放于系统数据库master中,并且名称以sp_或者xp_开头。
sp_addtype:用于定义一个用户定义数据类型。
sp_configure:用于管理服务器配置选项设置。
xp_sendmail:用于发送电子邮件或寻呼信息。
sp_stored_proceres:用于返回当前数据库中的存储过程的清单。
sp_help:用于显示参数清单和其数据类型。
sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象。
sp_helptext:用于显示存储过程的定义文本。
sp_rename:用于修改当前数据库中用户对象的名称。
程序代码
1. EXEC sp_renamedb 'userdb1', 'userdb2'
更改数据库的名称,由userdb1更改为userdb2
2.EXEC sp_rename 'user_log','用户登录表'
更改当前数据库表的名称,由user_log,改为'用户登录表'
EXEC sp_rename 'user_info.user_name', '用户名','column'
将user_info表的'user_name'列重命名为'用户名'
3.EXEC sp_detach_db 'pubs', 'true'
sp_detach_db
从服务器分离数据库,并可以选择在分离前在所有的表上运行 Update STATISTICS。
4. 将数据库附加到服务器
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
5. 将只有一个数据文件的数据库附加到当前服务器
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
----------------------------------------------
SQL中的注释
在SQL Server中,可以使用两种类型的注释字符:一种是ANSI标准的注释符“--”,它用于单行注释;另一种是与C语言相同的程序注释符号,即“/* */”。
SQL中的变量
Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。
3.数据控制语言(DCL)
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。
DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。
REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。
----------------------------------------------
4. 系统存储过程
系统存储过程是SQL Server系统创建的存储过程,它的目的在于能够方便地从系统表中查询信息,或者完成与更新数据库表相关的管理任务或其它的系统管理任务。系统存储过程可以在任意一个数据库中执行。系统存储过程创建并存放于系统数据库master中,并且名称以sp_或者xp_开头。
sp_addtype:用于定义一个用户定义数据类型。
sp_configure:用于管理服务器配置选项设置。
xp_sendmail:用于发送电子邮件或寻呼信息。
sp_stored_proceres:用于返回当前数据库中的存储过程的清单。
sp_help:用于显示参数清单和其数据类型。
sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象。
sp_helptext:用于显示存储过程的定义文本。
sp_rename:用于修改当前数据库中用户对象的名称。
程序代码
1. EXEC sp_renamedb 'userdb1', 'userdb2'
更改数据库的名称,由userdb1更改为userdb2
2.EXEC sp_rename 'user_log','用户登录表'
更改当前数据库表的名称,由user_log,改为'用户登录表'
EXEC sp_rename 'user_info.user_name', '用户名','column'
将user_info表的'user_name'列重命名为'用户名'
3.EXEC sp_detach_db 'pubs', 'true'
sp_detach_db
从服务器分离数据库,并可以选择在分离前在所有的表上运行 Update STATISTICS。
4. 将数据库附加到服务器
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
5. 将只有一个数据文件的数据库附加到当前服务器
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
----------------------------------------------
SQL中的注释
在SQL Server中,可以使用两种类型的注释字符:一种是ANSI标准的注释符“--”,它用于单行注释;另一种是与C语言相同的程序注释符号,即“/* */”。
SQL中的变量
Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。
局部变量:局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可以作为计数器来计算循环执行的次数,或是控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令定义后才可以使用。
全局变量:全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。
使用全局变量时应该注意以下几点:
①全局变量不是由用户的程序定义的,它们是在服务器级定义的。
②用户只能使用预先定义的全局变量。
③引用全局变量时,必须以标记符“@@”开头。
④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。
----------------------------------------------
SQL中的函数
在Transact-SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的标准命令。Transact-SQL 编程语言提供了三种函数:
一行集函数:行集函数可以在Transact-SQL语句中当作表引用。
二聚合函数:聚合函数用于对一组值执行计算并返回一个单一的值。
三标量函数:标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值。
1.字符串函数
字符串函数包括:
基本字符串函数:UPPER、LOWER、SPACE、REPLICATE、STUFF、REVERSE、LTRIM、RTRIM。
字符串查找函数:CHARINDEX、PATINDEX。
长度和分析函数:DATALENGTH、SUBSTRING、RIGHT。
转换函数:ASCH、CHAR、STR、SOUNDEX、DIFFERENCE。
基本字符串函数
UPPER:将小写字符数据转换为大写的字符
LOWER:将大写字符数据转换为小写的字符
SPACE:返回由重复的空格组成的字符串。如:space(2)则返回两个空格
REPLICATE:以指定的次数重复字符表达式。
语法:REPLICATE ( character_expression , integer_expression )
如:Select REPLICATE(au_fname, 2) FROM authors,则重复两遍每个作者的名字
STUFF:删除指定长度的字符并在指定的起始点插入另一组字符。
语法:STUFF ( character_expression , start , length , character_expression )
(start是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。
length是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。)
3.数据控制语言(DCL)
数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。
DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。
REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。
----------------------------------------------
4. 系统存储过程
系统存储过程是SQL Server系统创建的存储过程,它的目的在于能够方便地从系统表中查询信息,或者完成与更新数据库表相关的管理任务或其它的系统管理任务。系统存储过程可以在任意一个数据库中执行。系统存储过程创建并存放于系统数据库master中,并且名称以sp_或者xp_开头。
sp_addtype:用于定义一个用户定义数据类型。
sp_configure:用于管理服务器配置选项设置。
xp_sendmail:用于发送电子邮件或寻呼信息。
sp_stored_proceres:用于返回当前数据库中的存储过程的清单。
sp_help:用于显示参数清单和其数据类型。
sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象。
sp_helptext:用于显示存储过程的定义文本。
sp_rename:用于修改当前数据库中用户对象的名称。
程序代码
1. EXEC sp_renamedb 'userdb1', 'userdb2'
更改数据库的名称,由userdb1更改为userdb2
2.EXEC sp_rename 'user_log','用户登录表'
更改当前数据库表的名称,由user_log,改为'用户登录表'
EXEC sp_rename 'user_info.user_name', '用户名','column'
将user_info表的'user_name'列重命名为'用户名'
3.EXEC sp_detach_db 'pubs', 'true'
sp_detach_db
从服务器分离数据库,并可以选择在分离前在所有的表上运行 Update STATISTICS。
4. 将数据库附加到服务器
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
5. 将只有一个数据文件的数据库附加到当前服务器
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
----------------------------------------------
SQL中的注释
在SQL Server中,可以使用两种类型的注释字符:一种是ANSI标准的注释符“--”,它用于单行注释;另一种是与C语言相同的程序注释符号,即“/* */”。
SQL中的变量
Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。
局部变量:局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可以作为计数器来计算循环执行的次数,或是控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令定义后才可以使用。
全局变量:全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。
使用全局变量时应该注意以下几点:
①全局变量不是由用户的程序定义的,它们是在服务器级定义的。
②用户只能使用预先定义的全局变量。
③引用全局变量时,必须以标记符“@@”开头。
④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。
----------------------------------------------
SQL中的函数
在Transact-SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的标准命令。Transact-SQL 编程语言提供了三种函数:
一行集函数:行集函数可以在Transact-SQL语句中当作表引用。
二聚合函数:聚合函数用于对一组值执行计算并返回一个单一的值。
三标量函数:标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值。
1.字符串函数
字符串函数包括:
基本字符串函数:UPPER、LOWER、SPACE、REPLICATE、STUFF、REVERSE、LTRIM、RTRIM。
字符串查找函数:CHARINDEX、PATINDEX。
长度和分析函数:DATALENGTH、SUBSTRING、RIGHT。
转换函数:ASCH、CHAR、STR、SOUNDEX、DIFFERENCE。
基本字符串函数
UPPER:将小写字符数据转换为大写的字符
LOWER:将大写字符数据转换为小写的字符
SPACE:返回由重复的空格组成的字符串。如:space(2)则返回两个空格
REPLICATE:以指定的次数重复字符表达式。
语法:REPLICATE ( character_expression , integer_expression )
如:Select REPLICATE(au_fname, 2) FROM authors,则重复两遍每个作者的名字
STUFF:删除指定长度的字符并在指定的起始点插入另一组字符。
语法:STUFF ( character_expression , start , length , character_expression )
(start是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。
length是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。)
REVERSE:反转字符串Select REVERSE('abcd') 则返回‘dcba’
字符串查找函数
参考:http://www.badguy.name/article.asp?id=93
长度和分析函数
DATALENGTH :返回任何表达式所占用的字节数。
SUBSTRING:参考http://www.badguy.name/article.asp?id=105
LEFT:返回从字符串左边开始指定个数的字符。
RIGHT:返回从字符串左边开始指定个数的字符。Select RIGHT(au_fname, 5) FROM authors
2.日期和时间函数
datepart
示例:
3.数学函数
数学函数用于对数字表达式进行数学运算并返回运算结果。 常用的有:CEILING()、FLOOR()、ROUND()函数
4.转换函数
一般情况下,SQL Server会自动处理某些数据类型的转换。例如,如果比较 char 和 datetime 表达式、smallint 和 int 表达式、或不同长度的 char 表达式,SQL Server 可以将它们自动转换,这种转换被称为隐性转换。但是,无法由SQL Server自动转换的或者是SQL Server自动转换的结果不符合预期结果的,就需要使用转换函数做显示转换。转换函数有两个:CONVERT和CAST。
CAST ( expression AS data_type )
CONVERT函数允许用户把表达式从一种数据类型转换成另一种数据类型,还允许把日期转换成不同的样式。其语法形式为:
CONVERT (data_type[(length)],expression [,style])
流程控制语句是指那些用来控制程序执行和流程分支的命令,在SQL Server 2000中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
BEGIN
{ sql_statement
| statement_block }
END
http://www.badguy.name/article.asp?id=702
Ⅶ sql中常用的聚合函数有哪些(sql聚合函数)
聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUPBY子句一同使用,SQLSERVER中具体有哪些聚者正合函数呢?我们来一一看一下:
1.AVG返回指定组中的平均值,空值被忽略。
例:selectprd_no,avg(qty)fromsalesgroupbyprd_no
2.COUNT返回指定组中项目的数量。
例:selectcount(prd_no)fromsales
3.MAX返回指定数据的最大值。
例:selectprd_no,max(qty)fromsalesgroupbyprd_no
4.MIN返回指定数据的最小值。
例:selectprd_no,min(qty)fromsalesgroupbyprd_no
5.SUM返回指定数据的和,只能用于数字列,空值被忽略。
例:selectprd_no,sum(qty)fromsalesgroupbyprd_no
6.COUNT_BIG返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返型顷回的是int值。
例:selectcount_big(prd_no)fromsales
7.GROUPING产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
例:selectprd_no,sum(qty),grouping(prd_no)fromsalesgroupbyprd_nowithrollup
8.BINARY_CHECKSUM返回对表中的行或表达式列表计卜嫌陆算的二进制校验值,用于检测表中行的更改。
例:selectprd_no,binary_checksum(qty)fromsalesgroupbyprd_no
9.CHECKSUM_AGG返回指定数据的校验值,空值被忽略。
例:selectprd_no,checksum_agg(binary_checksum(*))fromsalesgroupbyprd_no
10.CHECKSUM返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
11.STDEV返回给定表达式中所有值的统计标准偏差。
例:selectstdev(prd_no)fromsales
12.STDEVP返回给定表达式中的所有值的填充统计标准偏差。
例:selectstdevp(prd_no)fromsales
13.VAR返回给定表达式中所有值的统计方差。
例:selectvar(prd_no)fromsales
14.VARP返回给定表达式中所有值的填充的统计方差。
例:selectvarp(prd_no)fromsales
Ⅷ 什么是SQL标量函数
标量函数:标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值。 标量值函数示例: CREATEFUNCTIONdbo.Foo() RETURNSint AS BEGIN declare@nint select@n=3 return@n END SQL中的函数 在Transact-SQL语言中,函数被用来执行一些特殊的运算以支持SQLServer的标准命令。Transact-SQL编程语言提迹稿含供了三种函数: 一行集函数:行集函数可以在Transact-SQL语句中当作表引用。 二聚合函数:聚合函数用于对敬薯一组值执行计算并返回一个单一的值。 三标量函数:标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值。 另外: SQLServer2000允许用户创建自定义函数,自定义函数可以有返回值。 自定义函数分为:标量值函数或表值函数 •如果RETURNS子句指定一种标量数据类型,则函数为标量值函数。可以使用多条Transact-SQL语句定义标量值函数。 •如果RETURNS子句指定TABLE,则函姿笑数为表值函数。
Ⅸ SQL中的窗口函数总结
over() 窗口函数
语法结构:
partition by : 作用与group by 类似,实现分组功能
常与over一起使用的分析函数:
聚合函数:
avg(),sum(),max(),mean()
排名函数:
row_number() 产生不会重复的自增编号 (1,2,3,4,5,6.......)
rank()按照值排序的时候产生一个自增编号,值相等时会重复,有空位(eg:1,2,2,4,5,6,6,8...)
dense_rank()按照值排序的时候产生一个自增编号,值相等时会重复,无空位(1,2,2,2,3...)
其他函数:
lag(),lead(),ntile()
实例:
1.对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列
Ⅹ 用SQL做日志数据的结果统计,并将结果写入一个表,应该如何做
如果要把查询到的数据贺厅仔保存 请自行新建一个和log表相同结构的表禅汪logs,代码如伏漏下:
SQL语句