SQL中常⽤Function总结⼀
SQL中的Function总结:
SQL拥有很多可⽤于计数和计算的内建函数。
在 SQL 中,基本的函数类型和种类有若⼲种。函数的基本类型是:
1. Aggregate 函数:合计函数(Aggregate functions)
Aggregate 函数的操作⾯向⼀系列的值,并返回⼀个单⼀的值。
2. Scalar 函数
Scalar 函数的操作⾯向某个单⼀的值,并返回基于输⼊值的⼀个单⼀的值。
⼀、SQL中的AVG 函数
定义:AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
AVG语法:
1. AVG(column_name)语法 :
SELECT AVG(column_name) FROM table_name
举例说明:
例⼦ 1:计算 Orders表中"OrderPrice" 字段的平均值。
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders;
结果:
例⼦ 2:到 Orders表中OrderPrice 值⾼于 OrderPrice 平均值的客户。
SELECT Customer from Orders where OrderPrice >(SELECT AVG(OrderPrice) FROM Orders);
结果:
⼆、SQL中的COUNT 函数
定义:COUNT() 函数返回匹配指定条件的⾏数。
COUNT语法:
1. COUNT(column_name)语法(COUNT(column_name) 函数返回指定列的值的数⽬(NULL 不计⼊)):
SELECT COUNT(column_name) FROM table_name
2. COUNT(*) 语法(COUNT(*) 函数返回表中的记录数):
SELECT COUNT(*) FROM table_name
3. COUNT(DISTINCT column_name) 语法(COUNT(DISTINCT column_name) 函数返回指定列的不同值的数⽬): SELECT COUNT(DISTINCT column_name) FROM table_name
注释:COUNT(DISTINCT) 适⽤于 MYSQL、ORACLE 和 MSSQL,但是⽆法⽤于 Microsoft Access。举例说明:
例⼦ 1:计算Orders表中客户 "Carter" 的订单数
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Carter';
结果:
例⼦ 2:计算Orders表中所有订单数,
SELECT COUNT(*) AS NumberOfOrders FROM Orders;
结果:
例⼦ 3:计算Orders表中客户数,
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders;
结果:
三、SQL中的FIRST函数
定义:FIRST() 函数返回指定的字段中第⼀个记录的值。
提⽰:可使⽤ ORDER BY 语句对记录进⾏排序。
注:在MSSQL中是⽤select top 1 * from table_name来获取第⼀条记录的。
在MySQL中是⽤select * from table_name limit 0, 1,来获取第⼀条记录的。
FIRST语法:
1. FIRST(column_name)语法 :
SELECT FIRST(column_name) FROM table_name
举例说明:
例⼦ 1:查Orders表中 "OrderPrice" 列的第⼀个值。
function怎么记忆
SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders;
因为我⽤的是Mysql,所以这⾥⽤Mysql的写法来实现上述sql效果:
SELECT OrderPrice AS FirstOrderPrice FROM Orders limit 0, 1;
结果:
四、SQL中的LAST函数
定义:LAST() 函数返回指定的字段中最后⼀个记录的值。
提⽰:可使⽤ ORDER BY 语句对记录进⾏排序。
注:在MSSQL中不⽀持LAST函数,但是可以根据某⼀列进⾏排序,将最后⼀个记录排到第⼀个,然后通过top 1来获取排序后的第⼀个记录。
在MySQL中也不⽀持LAST函数,但也可以先排序,然后⽤limit 0,1 的⽅法来获取第⼀个记录。
LAST语法:
1. LAST(column_name)语法 :
SELECT LAST(column_name) FROM table_name
举例说明:
例⼦ 1:查Orders表中 "OrderPrice" 列的最后⼀个值。
SELECT LAST(OrderPrice) AS FirstOrderPrice FROM Orders;
因为我⽤的是Mysql,所以这⾥⽤Mysql的写法来实现上述sql效果:
SELECT OrderPrice AS FirstOrderPrice FROM Orders order by O_id desc limit 0, 1 ;
结果:
五、SQL中的MAX函数
定义:MAX 函数返回⼀列中的最⼤值。NULL 值不包括在计算中。
MAX语法:
1. MAX(column_name)语法 :
SELECT MAX(column_name) FROM table_name
举例说明:
例⼦ 1:查Orders表中 "OrderPrice" 列的最⼤值。
SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders;
结果:
六、SQL中的MIN函数
定义:MIN 函数返回⼀列中的最⼩值。NULL 值不包括在计算中。
MIN语法:
1. MIN(column_name)语法 :
SELECT MIN(column_name) FROM table_name
举例说明:
例⼦ 1:查Orders表中 "OrderPrice" 列的最⼩值。
SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders;
结果:
七、SQL中的Sum函数
定义:SUM 函数返回数值列的总数(总额)。
SUM语法:
1. SUM(column_name)语法 :
SELECT SUM(column_name) FROM table_name
举例说明:
例⼦ 1:查Orders表中"OrderPrice" 字段的总数。
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders;结果:
下⾯是例⼦中涉及到表的建表语句和数据:
create table Orders(
O_Id int,
OrderDate date,
OrderPrice float,
Customer varchar(10)
);
insert into Orders values(1,'2008/12/29',1000,'Bush'); insert into Orders values(2,'2008/11/23',1600,'Carter'); insert into Orders values(3,'2008/10/05',700,'Bush'); insert into Orders values(4,'2008/09/28',300,'Bush'); insert into Orders values(5,'2008/08/06',2000,'Adams'); insert into Orders values(6,'2008/07/21',100,'Carter');
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论