代码之家  ›  专栏  ›  技术社区  ›  Muhammad Faisal Iqbal

连续两行中的最大列差

  •  1
  • Muhammad Faisal Iqbal  · 技术社区  · 7 年前

    我正在使用PostgreSQL数据库开发Rails应用程序。

    ID   media_count  created_at
    1    10           01-01-2017   
    2    12           02-01-2017
    3    20           03-01-2017
    4    25           04-01-2017
    

    我需要找出任何连续行中media\u计数的最大差异

    就像上面的情况一样 8. 通过这些行的差异

    ID   media_count  created_at
    2    12           02-01-2017
    3    20           03-01-2017
    

    我不知道如何提出这样的质疑。

    1 回复  |  直到 7 年前
        1
  •  1
  •   potashin    7 年前

    您可以尝试以下操作:

    Upload.all.each_cons(2).max_by { |x1, x2| x2.media_count - x1.media_count }
    

    我假设成功是由 id 列(如果不是,则需要替换 all 带有 order 一是提供显式列名和升序排序声明,例如, order(created_at: :asc) ).