一道 sql 面试题

本贴最后更新于 1300 天前,其中的信息可能已经天翻地覆

本以为 SQL 写的不错 面试的时候被刺激了 把题目写出来 大神们虐我来吧

表结构为
year price
2000 1000
2001 2000
2002 3000
2003 4000

期望的结果集是 之前年份的累加 price 之和
结果应为
2000 1000
2001 3000
2002 6000
2003 10000

问 这条 SQL 怎么写

6 回帖
请输入回帖内容...
  • ZephyrJung 1

    假设这个表是 tb
    select tb1.year,sum(tb2.price) from tb tb1 left join tb tb2 on tb1.year>=tb2.year group by tb1.year
    我是来拿分的 trollface

    1 回复
  • 714593351

    666

  • Vanessa 1 1 赞同

    QQ 图片 20160909133459.png

    我是借他人之手来那分的

  • bugsnail

    其实可以用一个更好的写法:

    select sum(price) total, year
    from table_name
    group by year with rollup
    

    参考 WITH ROLLUP 写法

    2 回复
  • crick77

    1473643365320

  • crick77

    居然还有这个语法 我先学习一下

请输入回帖内容 ...