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;
    
            
     
     
     
  • 相关阅读:
    关于时间
    ELK日志平台
    Java web项目
    阳光下的挣扎
    Windows Server 2008 R2无法连接无线网络的解决方法
    像进度条的网页加载Loading JS代码
    JAVASCRIPT网页上下切换的打开特效
    霓虹灯文字代码 JS网页特效
    Js代码动态移动层-拖动浮层并关闭
    JS网页特效:星空飞入效果
  • 原文地址:https://www.cnblogs.com/linvan/p/5825239.html
Copyright © 2011-2022 走看看