zoukankan      html  css  js  c++  java
  • SQL练习1:统计班级男女生人数

    1 有如下表格和数据:
     2     ID          Name       Class      Sex
     3     ----------- ---------- ---------- ----
     4     1           张1         一班         男
     5     2           张2         一班         男
     6     3           张3         二班         女
     7     4           张4         一班         男
     8     5           张5         二班         女
     9     6           张6         二班         女
    10     7           张7         二班         男
    11     8           张8         一班         女
    12 现要求通过SELECT语句查询出如下结果:
    13 
    14     班级         男           女
    15     ---------- ----------- -----------
    16     二班         1           3
    17     一班         3           1
    18 
    19 
    20 use studb
    21 go
    22 create table TestTable
    23 (
    24     ID int identity(1,1primary key,
    25     [Name] varchar(10),
    26     [Class] varchar(10),
    27     Sex char(2)
    28 )
    29 
    30 insert TestTable values('张1','一班','')
    31 insert TestTable values('张2','一班','')
    32 insert TestTable values('张3','二班','')
    33 insert TestTable values('张4','一班','')
    34 insert TestTable values('张5','二班','')
    35 insert TestTable values('张6','二班','')
    36 insert TestTable values('张7','二班','')
    37 insert TestTable values('张8','一班','')
    38 
    39 select * from TestTable
    40 
    41 --答案1:
    42 select class 班级, count(case when Sex='' then 1 endas 男,
    43 count(case when Sex='' then 1 endas 女 
    44 from TestTable group by class
    45 --答案2:
    46 SELECT 班级, SUM(男) AS 男, SUM(女) AS 女 FROM (
    47 SELECT Class AS 班级, COUNT(Sex) AS 男, 0 AS 女 FROM TestTable
    48 WHERE Sex=''
    49 GROUP BY Class
    50 UNION
    51 SELECT Class AS 班级, 0 AS 男, COUNT(Sex) AS 女 FROM TestTable
    52 WHERE Sex=''
    53 GROUP BY Class
    54 ) A
    55 GROUP BY 班级

     

    本文引用自:http://www.cnblogs.com/seerlin/archive/2009/02/17/1392230.html

  • 相关阅读:
    Cocos游戏引擎,让小保安成就大梦想
    Android 高仿QQ5.2双向側滑菜单DrawerLayout实现源代码
    Java中字符串相等与大小比較
    Android四大基本组件之 Activity
    C++基础学习教程(五)
    HAWQ技术解析(八) —— 大表分区
    Jenkins 安装与使用--实例
    Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
    Mycat(4):消息表mysql数据库分表实践
    谋哥:《App自推广》开篇之回到远古人类
  • 原文地址:https://www.cnblogs.com/johnsmith/p/2167580.html
Copyright © 2011-2022 走看看