zoukankan      html  css  js  c++  java
  • SQL 的多列统计

    create table #type(id int , type varchar(30))
    insert into #type
    select  1  ,'中国'
    union
    select 2  ,'美国'
    union
    select 3 , '俄罗斯'

    create table #timu(id int ,typeid int ,score int )
    insert into #timu
    select         1    ,    1    ,    3
    union select 2    ,    1    ,    4
    union select 3    ,    1    ,    5
    union select 4    ,    2    ,    3
    union select 5    ,    2    ,    4
    union select 6    ,    3    ,    5

    create table #paper(id int ,qid int   )
    insert into #paper
    select            1 , 1
    union select    1 , 2
    union select    1 , 3
    union select    1 , 5
    union select    2 ,1
    union select    2 ,2
    union select    2 ,6

    select  p.id ,  sum(china.score) as 中国 , sum(am.score) as 美国 , sum(a.score) as  俄罗斯
    from #paper as p
    left join (select id ,score from #timu where typeid =1 ) as china on ( p.qid = china.id )
    left join (select id ,score from #timu where typeid =2 ) as am on ( p.qid = am.id )
    left join (select id ,score from #timu where typeid =3 ) as a on ( p.qid = a.id )
    group by p.id

    select  *
    from #paper as p
    --join (select id ,score from #timu where typeid =1 ) as china on ( p.qid = china.id )
    join (select id ,score from #timu where typeid =2 ) as am on ( p.qid = china.id )
    join (select id ,score from #timu where typeid =3 ) as a on ( p.qid = china.id )
    group by p.id


    结果:

    id          中国          美国          俄罗斯
    ----------- ----------- ----------- -----------
    1           12          4           NULL
    2           7           NULL        5
    警告: 聚合或其他 SET 操作消除了空值。

    (2 行受影响)


  • 相关阅读:
    12.12 怀北滑雪场滑雪记
    datetime类型offset-aware与offset-navie
    Django-models中的choise
    什么是__name__()
    单机Ubuntu安装第二个Mysql服务
    Ubuntu下的Python安装
    设置mysql允许外网访问
    Ubuntu初次设置root密码
    使用VMware+Ubuntu,无法切换大小写的异常处理
    XShell/Xftp 无法连接 Ubuntu20
  • 原文地址:https://www.cnblogs.com/newsea/p/990059.html
Copyright © 2011-2022 走看看