哈哈哈嘿嘿嘻嘻 2014-12-01 08:53 采纳率: 0%
浏览 1861
已采纳

sql语句按年怎样分组 求大神支招

比如下面:
比如字段两列
A B
2011 100
2011 60
2011 70
2012 200
2012 250
2013 300
2013 400

我想最后得到分组结果 比如:
2011年的为一个数组 array(
2011 => 100,
2011 => 60,
2011 => 70,


然后 2012和2013 和2011 一个道理
求大神支招

  • 写回答

4条回答

  • --小F-- 2014-12-03 08:40
    关注

    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    go
    create table tb
    insert [tb]
    select 2011,100 union all
    select 2011,60 union all
    select 2011,70 union all
    select 2012,200 union all
    select 2012,250 union all
    select 2013,300 union all
    select 2013,400
    --------------开始查询--------------------------
    ;with f as
    (select id=row_number()over(order by getdate()),* from tb)

    SELECT A.A,A.B,B.PX FROM F AS A
    INNER JOIN
    (
    SELECT ROW_NUMBER()OVER( ORDER BY MIN(ID)) AS PX ,a FROM f GROUP BY a
    ) AS B
    ON A.A=B.A
    ----------------结果----------------------------
    /* A B PX


    2011 100 1
    2011 60 1
    2011 70 1
    2012 200 2
    2012 250 2
    2013 300 3
    2013 400 3
    */

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器