douaipi3965 2015-07-25 02:21
浏览 60
已采纳

SQL将行的副本创建到同一个表中

Say my SQL table looks like this:

Week | User  | Score
-----+-------+------
1    | Bob   |  14
1    | Tim   |  22
2    | Bob   | -19
2    | Time  | -12
2    | Steve |  31

I want to create an SQL query to duplicate every entry from the most recent week (in this case 2), and paste them into the same same where week increases by one, and the "score" column is zero'd out. The result below:

Week | User  | Score
-----+-------+------
1    | Bob   |  14
1    | Tim   |  22
2    | Bob   | -19
2    | Time  | -12
2    | Steve |  31
3    | Bob   |
3    | Tim   |
3    | Steve |
  • 写回答

1条回答 默认 最新

  • dongyupen6269 2015-07-25 02:37
    关注

    What you want to do is just take the latest values and insert them back in with slight modifications:

    INSERT INTO my_table (id, name, val)
    SELECT id+1, name, null
    FROM my_table
    WHERE id = (SELECT MAX(id) FROM my_table)
    

    See this sqlfiddle for a working example.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换