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;
    
            
     
     
     
  • 相关阅读:
    树莓派研究笔记(2)-- 安装Nginx 服务器,PHP 和 SQLite
    树莓派研究笔记(1)-- 安装Mono
    Qemu虚拟机 玩树莓派最新版系统 (截止2017-04-10)
    CLRInjection
    CLRMonitor
    Xamarin Mono for VS开发窗体标题(Title)乱码解决方案
    精美3D中国象棋
    怀旧系列(5)----大学时代的疯狂
    怀旧系列(4)----文曲星编程GV-Basic
    怀旧系列(3)----Pascal
  • 原文地址:https://www.cnblogs.com/linvan/p/5825239.html
Copyright © 2011-2022 走看看