zoukankan      html  css  js  c++  java
  • sql group by

    group by实例

    实例一

    数据表:

    姓名 科目 分数
    张三 语文 80
    张三 数学 98
    张三 英语 65
    李四 语文 70
    李四 数学 80
    李四 英语 90

    期望查询结果:

    姓名 语文 数学 英语
    张三 80 98 65
    李四 70 80 90

    create table testScore    
    (    
       tid int primary key identity(1,1),    
       tname varchar(30) null,    
       ttype varchar(10) null,    
       tscor int null   
    )    
    go    
    ---插入数据    
    insert into testScore values ('张三','语文',80)    
    insert into testScore values ('张三','数学',98)    
    insert into testScore values ('张三','英语',65)    
    insert into testScore values ('李四','语文',70)    
    insert into testScore values ('李四','数学',80)    
    insert into testScore values ('李四','英语',90)    
    
    
    select tname as '姓名' ,     
    max(case ttype when '语文' then tscor else 0 end) '语文',     
    max(case ttype when '数学' then tscor else 0 end) '数学',     
    max(case ttype when '英语' then tscor else 0 end) '英语'     
    from testScore     
    group by tname

    实例二

    数据表:

    dataStr result

    2016-05-09 胜

    2016-05-09 胜

    2016-05-09 负

    2016-05-10 胜

    2016-05-10 负

    2016-05-10 负

    期望查询结果:

    日期 胜数 负数

    2016-05-09 2 1

    2016-05-10 1 2

    -- ----------------------------
    -- Table structure for `score`
    -- ----------------------------
    DROP TABLE IF EXISTS `score`;
    CREATE TABLE `score` (
      `dataStr` varchar(255) DEFAULT NULL,
      `result` varchar(255) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of score
    -- ----------------------------
    INSERT INTO `score` VALUES ('2016-05-09', '');
    INSERT INTO `score` VALUES ('2016-05-09', '');
    INSERT INTO `score` VALUES ('2016-05-09', '');
    INSERT INTO `score` VALUES ('2016-05-10', '');
    INSERT INTO `score` VALUES ('2016-05-10', '');
    INSERT INTO `score` VALUES ('2016-05-10', '');
    
    SELECT U.dataStr AS 日期,
    SUM(result='')AS 胜数,
    SUM(result='')AS 负数
    FROM score AS U WHERE 1=1 GROUP BY dataStr

    实例三

    数据表
    国家(country)  人口(population)
    中国 600
    美国 100
    加拿大 100
    英国 200
    法国 300
    日本 250
    德国 200
    墨西哥 50
    印度 250
     期望查询结果:

      人口
    亚洲 1100
    北美洲 250
    其他 700
     
                
    SELECT  SUM(population),
            CASE country
                    WHEN '中国'     THEN '亚洲'
                    WHEN '印度'     THEN '亚洲'
                    WHEN '日本'     THEN '亚洲'
                    WHEN '美国'     THEN '北美洲'
                    WHEN '加拿大'  THEN '北美洲'
                    WHEN '墨西哥'  THEN '北美洲'
            ELSE '其他' END
    FROM    Table_A
    GROUP BY CASE country
                    WHEN '中国'     THEN '亚洲'
                    WHEN '印度'     THEN '亚洲'
                    WHEN '日本'     THEN '亚洲'
                    WHEN '美国'     THEN '北美洲'
                    WHEN '加拿大'  THEN '北美洲'
                    WHEN '墨西哥'  THEN '北美洲'
            ELSE '其他' END;
    
            
     
     
     
  • 相关阅读:
    new JSONObject()报空指针异常
    转:修改Fckeditor 2.6 增加插入Mp3等多媒体文件功能
    执行更新操作时,timestamp类型的字段自动被更新为了系统当前日期
    读取某个文件的位置
    myeclipse配置注释
    为eclipse 的 hibernate 配置文件加提示
    hibernate3与hibernate4
    查看eclipse版本
    Eclipse编译没有class文件生成
    严重: Error loading WebappClassLoader context:
  • 原文地址:https://www.cnblogs.com/linvan/p/5825239.html
Copyright © 2011-2022 走看看