SQL语句的知识点十分零散,但是通用性很强,大都知名的数据型软件,大都会用到SQL语句。
在学习过程中,很多东西可能不是特别的实用,可能有很多更简便的方法,但学习的过程是熟悉知识点的过程。
我们学一样东西,是为了实际运用。了解大块的知识点,形成一些大体的知识框架后,尽量将知识点运用到现有的工作中来。
下面是一些SQL语句的综合运用。(当然下面的内容依旧是记录的笔记)
案例1:分组筛选排序
统计03年各地区平均纯利润前三名的记录,要求从大到小排序
- select top 3 地理位置,avg(纯利润) as 平均纯利润 from [demo1$] where 年度="2003年度" group by 地理位置 having avg(纯利润)>5000 order by avg(纯利润) desc
案例2:聚合函数、分组与日期函数,format函数运用
统计2010年各季度销量总数量
-
select format(订单日期,"第q季度") as 季度,sum(数量) as 总数量 from [demo2$] where year(订单日期)=2010 group by format(订单日期,"第q季度")
案例3:聚合函数连接与分组
要求汇总出每种产品的单价,数量,平均单价和总数量。
- select * from [demo] group by 品名
然后做入数据透视表中做简单的汇总即可。
案例4:汇总多工作薄多工作表
select *,"语文" as 科目,"一月" as 月份 from [E:\李建杰\代码\课件\透视表\第2章 SQL与数据透视表\2.64\一月.xlsx].[语文] union all select *,"数学","二月" from [E:\李建杰\代码\课件\透视表\第2章 SQL与数据透视表\2.64\二月.xlsx].[数学] union all select *,"语文","三月" from [E:\李建杰\代码\课件\透视表\第2章 SQL与数据透视表\2.64\三月.xlsx].[语文]
[绝对路径].[工作表$]
案例5:
统计每个月销售业绩为前三名的平均业绩
- select * from(select top 3 业务员,[1月] as 业绩,"1月" as 月份 from [demo] order by [2月] desc)
union all
select * from (select top 3 业务员,[3月],"3月" from [demo$] order by [3月] desc)
然后用数据透视表简单汇总
案例6:SQL语句排名
先来一个简单的例子
我们需要将这张表格用EXCEL自带的名称管理器定义一下。
- select ,(select count()+1 from 成绩 t2 where t2.班级= t1.班级 and t2.分数> t1.分数) as 名次 from 成绩 t1
sql语句处理数据的执行顺序与编程语言方式差不多,都是自上而下顺序执行。那么在数据表中会形成循环比对的效果,这样通过两个条件的限制进行计数。
理解了这个简单的例子那么下面略微复杂的例子就容易理解的多。
- select 组别,业务员,
(select count() from [demo] t3 where t3.组别=t1.组别 and t3.[2月]>t1.[2月]) as 2月排名,
(select count() from [demo] t1