编程语言
首页 > 编程语言> > SQL server高级函数查询

SQL server高级函数查询

作者:互联网

数据统计函数查询 数据分组查询 汇总数据 多表查询

数据统计函数

 

数据函数的具体作用

-- 聚合函数

------------count() 计算次数---------------------------

--计算订单的数目,并且取中文别名 select count(*) as 订单总数 from orders;

--查看布鲁士的订单数目 select count(*) as 布鲁士的订单数 from orders where customer=布鲁士;

------------sum() 求和---------------------------

--查看订单的总价,并且取中文别名 select sum(ordersPrice) as 总价 from orders;

--查看订单的总单数与销售总额,并且取中文别名 select count(*) as 数量,sum(ordersPrice) as 总价 from orders;

------------avg() 求平均值---------------------------

--求订单平均金额,并且取中文别名 select avg(ordersPrice) from orders;

--求订单的订单数,总和,平均值,并且取中文别名 select count(*),sum(ordersPrice),avg(ordersPrice) from orders;

--求Bush的订单总和与订单数和平均值 select count(*), sum(ordersPrice), round(avg(ordersPrice),2) from orders where customer=布鲁士;

------------max()最大值,min()最小值---------------------------

--求最高金额的订单 select max(ordersPrice) from orders;

--求最小金额的订单 select min(ordersPrice) from orders;

--求Bush的最大订单 --求Bush的最小订单 select max(ordersPrice), min(ordersPrice) from orders where customer=布鲁士;

-----------聚合函数常和分组函数group by结合使用--------------

--查看订单表中的客户

-- 去重复 distinct select distinct customer from orders;

-- 分组 group by -- select 的后面只能出现聚合函数和分组依据 -- 原因:其他数据存在多个值 无法判断该取值哪一个值 select customer from orders group by customer;

--查看每个客户对应的订单数目 select customer,count(*) from orders group by customer;

--查看每个客户对应的订单数目与总金额 select customer, count(*), sum(ordersPrice) from orders group by customer;

--查看每个客户对应的订单数目与总金额与平均值 select customer, count(*), sum(ordersPrice), avg(ordersPrice) from orders group by customer;

--查看订单数目最多的客户与总数,总金额 -- 先分组,取出数量 -- 再根据数量排序 -- 取第一个 select top 1 customer, count(*) from orders group by customer order by count(*) desc;

--查看订单平均值最高的客户 select top 1 customer, avg(ordersPrice) from orders group by customer --分组 order by avg(ordersPrice) desc; --排序

-- avg 平均 -- sum 求和 -- max 最大值 -- min 最小值 -- count 次数 -- group by 分组

------------------联表查询----------------------

--左连接: 左表的数据都出来 left join select * from tb_stu a left join tb_score b on a.SCode=b.StudentID;

--右连接: 右表的数据都出来 right join select * from tb_stu a right join tb_score b on a.SCode=b.StudentID;

--全连接: 全部出来 full join select * from tb_stu a full join tb_score b on a.SCode=b.StudentID;

--内连接: 两张表都有的数据才会出来 inner join select * from tb_stu a inner join tb_score b on a.SCode=b.StudentID;

标签:数据统计,函数,计算次数,销售,文件,总价
来源: