美文网首页RSQLJAVA技术栈
SQL语句整理——综合运用

SQL语句整理——综合运用

作者: 猛犸象和剑齿虎 | 来源:发表于2019-07-18 08:46 被阅读165次

    SQL语句的知识点十分零散,但是通用性很强,大都知名的数据型软件,大都会用到SQL语句。
    在学习过程中,很多东西可能不是特别的实用,可能有很多更简便的方法,但学习的过程是熟悉知识点的过程。
    我们学一样东西,是为了实际运用。了解大块的知识点,形成一些大体的知识框架后,尽量将知识点运用到现有的工作中来。
    下面是一些SQL语句的综合运用。(当然下面的内容依旧是记录的笔记)

    案例1:分组筛选排序

    demo1

    统计03年各地区平均纯利润前三名的记录,要求从大到小排序

    • select top 3 地理位置,avg(纯利润) as 平均纯利润 from [demo1$] where 年度="2003年度" group by 地理位置 having avg(纯利润)>5000 order by avg(纯利润) desc
    结果

    案例2:聚合函数、分组与日期函数,format函数运用

    image.png

    统计2010年各季度销量总数量

    • select format(订单日期,"第q季度") as 季度,sum(数量) as 总数量 from [demo2$] where year(订单日期)=2010 group by format(订单日期,"第q季度")


      image.png

    案例3:聚合函数连接与分组

    image.png

    要求汇总出每种产品的单价,数量,平均单价和总数量。

    • select * from [demo] union all select "汇总",品名,avg(单价),sum(数量) from [demo] group by 品名
      然后做入数据透视表中做简单的汇总即可。
      image.png

    案例4:汇总多工作薄多工作表

    image.png
    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].[语文]

    [绝对路径].[工作表$]


    image.png

    案例5:

    image.png

    统计每个月销售业绩为前三名的平均业绩

    • select * from(select top 3 业务员,[1月] as 业绩,"1月" as 月份 from [demo] order by [1月] desc) union all select * from (select top 3 业务员,[2月],"2月" from [demo] order by [2月] desc)
      union all
      select * from (select top 3 业务员,[3月],"3月" from [demo$] order by [3月] desc)
      然后用数据透视表简单汇总
      image.png

    案例6:SQL语句排名

    先来一个简单的例子


    image.png

    我们需要将这张表格用EXCEL自带的名称管理器定义一下。


    image.png
    • select ,(select count()+1 from 成绩 t2 where t2.班级= t1.班级 and t2.分数> t1.分数) as 名次 from 成绩 t1
      sql语句处理数据的执行顺序与编程语言方式差不多,都是自上而下顺序执行。那么在数据表中会形成循环比对的效果,这样通过两个条件的限制进行计数。
      image.png
      理解了这个简单的例子那么下面略微复杂的例子就容易理解的多。
      demo
    • select 组别,业务员,
      (select count() from [demo] t2 where t2.组别=t1.组别 and t2.[1月]>t1.[1月]) as 1月排名, (select count(*) from [demo] t3 where t3.组别=t1.组别 and t3.[2月]>t1.[2月]) as 2月排名,
      (select count(
      ) from [demo] t4 where t4.组别=t1.组别 and t4.[3月]>t1.[3月]) as 3月排名 from [demo] t1
      image.png

    相关文章

      网友评论

        本文标题:SQL语句整理——综合运用

        本文链接:https://www.haomeiwen.com/subject/dovflctx.html