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;
    
            
     
     
     
  • 相关阅读:
    高效的团队必须坚持反馈制度
    项目管理式生活
    用PDCA让工作效率步步高升
    PHP函数:fsockopen简介
    php的getallheaders函数在nginx下失效的解决办法
    getallheaders函数使用方法
    PHP中getenv函数
    PHP获取http请求的头信息实现步骤
    php下获取http状态的实现代码
    PHP获取客户端和服务器端IP
  • 原文地址:https://www.cnblogs.com/linvan/p/5825239.html
Copyright © 2011-2022 走看看