• 5.sql2008分组与嵌套



    1.Group by基本介绍;
    2.Having的使用;
    3.分组综合应用;
    4.子查询基本介绍;
    5.In/Exists/Any/Some/All;
    6.子查询综合应用;

    1.Group by基本介绍:依据BY提供的规则,将数据集划分为若干个小区域,然后对小区域进行处理.
        --认清实质:按照指定字段将相同的分为一组,成为一个集合,这样就会有多个小集合.然后按照指定字段(不指定就为*)用聚合函数统计.
    A.客户男女各多少人:
    select csex as '性别',COUNT(*) as '人数'
    --一旦分组只能写分组字段和聚合函数,中间不能再写其他字段.
    from customer
    group by 性别
        
    B. 统计出每一类商品中的最高的价格;
        select 商品ID ,max(商品价格) as '最高价格'
        from 商品表
        group by 商品ID

    C.查询出出售数量最多的商品的货号;
        select 商品ID,count(*)
        from 明细表
        group by 商品ID
        order by count(*) desc
        这只销售最多的排序.应该再嵌套一次:
        select 商品ID,count(*)
        from 明细表
        group by 商品ID
        having count(*)=
        (
            select tip 1 count(*)
            from 明细表
            group by 商品ID
            order by count(*) desc
        )
    group by all
        示例:统计出2016年客户购物情况:
        select cno ,count(*) as '购物数量'
        from 明细表
        where 购物日期 between '2016-1-1' and '2016-12-31'
        group by cno
        order by count(*)  //排序

        如果加上all会把在此时间段未购物的也统计出来.

        示例:统计出购物数量多于两件的客户姓名及数量,按照数量降序排列.
        分析:需要使用客户表和购物明细表两个表,利用分组将客户号和数量大于2的找到,然后再将两个表关联查询后得出结果.(对分组后的数据进行筛选加条件必须使用having子句.)

        select cname,t2.购物量字段
        from  customer t1,    
        (
            select cno,count(*)
            from 明细表
            group by cno
            having count(*)>2
        ) t2
        where t1.cno=t2.cno
        order by t2.购物量字段 desc
    !!!做分组查询时,select语句后面只能是分组的字段名或者聚合函数.

    嵌套查询:
        可以嵌套在select中,也可以嵌套在from中,还可以嵌套在where中.
        示例1.统计出哪些客户购买了多少件商品.(select,from)
        
        示例2.查询出售最多的商品名字.(where)



  • 相关阅读:
    Objective-C学习笔记2013(Category 扩展(类目)/分类)(4)
    Objective-C学习笔记(static,self,super)
    Objective-C学习笔记2013(3)[NSArray]数组[在可变数组中,加用add减用remove]
    Objective-C学习笔记2013(2)[NSNumber]
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    C语言学期总结
    第一次作业
  • 原文地址:https://www.cnblogs.com/yangwenlong/p/7905749.html
Copyright © 2020-2023  润新知