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;

本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;

2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;

3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;

4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;

5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/293875.html

(0)
上一篇 2022年11月29日
下一篇 2022年11月29日

相关推荐

发表回复

登录后才能评论