首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求一分组汇总语句 [已结帖,结帖人:ye51]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ye51
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2007-08-30 20:33:19 楼主
    有如下记录:

    classroom       student   sex
    一班     张三  男
    二班     李四  男
    一班     王五  女
    一班     老六  男

    分别统计出 男女数
    显示:
    班级 男生数 女生数
    一班  3   1
    二班  1   0

    sql语句如何写呢?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xeqtr1982
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-30 20:48:571楼 得分:10
    楼主答案好像有点问题
    --------------------------------------------
    create   table   tb(classroom   varchar(10),student   varchar(10),sex   varchar(10))
    insert   into   tb   select   '一班 ', '张三 ', '男 '
    union   all   select   '二班 ', '李四 ', '男 '
    union   all   select   '一班 ', '王五 ', '女 '
    union   all   select   '一班 ', '老六 ', '男 '
    go

    select
      班级=classroom,
      男生数=sum(case   sex   when   '男 '   then   1   else   0   end),
      女生数=sum(case   sex   when   '女 '   then   1   else   0   end)
    from
      tb
    group   by   classroom  
    order   by   classroom   collate   Chinese_PRC_Stroke_CI_AS


    drop   table   tb
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SoftwKLC
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-30 20:55:552楼 得分:10
    Select  
                Classroom   As   班级,
                Sum(Case   Sex   When   '男 '   Then   1   Else   0   End)   As   男生数,
                Sum(Case   Sex   When   '女 '   Then   1   Else   0   End)   As   女生数
    From   表
    Group   BY   Classroom
    Order   BY   Classroom   Collate   Chinese_PRC_Stroke_CI_AS
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • vchao13
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-30 21:11:043楼 得分:0
    楼上正解。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

    发表于:2007-08-30 21:58:464楼 得分:0
    create   table   tb   (classroom   varchar(10),student   varchar(10),sex   varchar(10))
    insert   into   tb   values( '一班 ', '张三 ', '男 ')
    insert   into   tb   values( '二班 ', '李四 ', '男 ')
    insert   into   tb   values( '一班 ', '王五 ', '女 ')
    insert   into   tb   values( '一班 ', '老六 ', '男 ')

    select   classroom   班级,
        sum(case   when   sex   =   '男 '   then   1   else   0   end)   '男生数 ',
        sum(case   when   sex   =   '女 '   then   1   else   0   end)   '女生数 '
    from   tb
    group   by   classroom

    drop   table   tb
    /*
    班级                   男生数                   女生数                  
    ----------   -----------   -----------  
    二班                   1                       0
    一班                   2                       1

    (所影响的行数为   2   行)
    */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Limpire
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      2

    发表于:2007-08-30 22:01:265楼 得分:0
    完全正确
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

    发表于:2007-08-30 22:21:106楼 得分:0
    Collate   Chinese_PRC_Stroke_CI_AS
    这个不起作用的.
    如下四,五.

    create   table   tb   (classroom   varchar(10),student   varchar(10),sex   varchar(10))
    insert   into   tb   values( '一班 ', '张三 ', '男 ')
    insert   into   tb   values( '二班 ', '李四 ', '男 ')
    insert   into   tb   values( '一班 ', '王五 ', '女 ')
    insert   into   tb   values( '一班 ', '老六 ', '男 ')
    insert   into   tb   values( '三班 ', '老六 ', '男 ')
    insert   into   tb   values( '四班 ', '老六 ', '男 ')
    insert   into   tb   values( '五班 ', '老六 ', '男 ')

    select   classroom   班级,
        sum(case   when   sex   =   '男 '   then   1   else   0   end)   '男生数 ',
        sum(case   when   sex   =   '女 '   then   1   else   0   end)   '女生数 '
    from   tb
    group   by   classroom
    order   by   classroom   Collate   Chinese_PRC_Stroke_CI_AS
    drop   table   tb
    /*
    班级                   男生数                   女生数                  
    ----------   -----------   -----------  
    一班                   2                       1
    二班                   1                       0
    三班                   1                       0
    五班                   1                       0
    四班                   1                       0

    (所影响的行数为   5   行)
    */

    修改 删除 举报 引用 回复