【问题标题】:Duplicating PostgreSQL's window functions like lag, lead, over复制 PostgreSQL 的窗口函数,如 lag、lead、over
【发布时间】:2012-02-07 23:59:53
【问题描述】:

如何将 PostgreSQL 查询更改为 mongodb bson 调用?我在http://archives.postgresql.org/pgsql-general/2011-10/msg00157.php 中列出了相同的用例,我想通过使用滞后或领先等方法来计算两个日志条目之间的增量时间。 mongodb 中是否有类似 Postgres 的滞后/领先语法的东西?

select 
  index, 
  starttime, 
  endtime, 
  starttime - lag(endtime) over(order by starttime asc) as delta 
from test

http://www.postgresql.org/docs/8.4/static/functions-window.html

我在看http://www.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/,似乎 map / reduce / finalize 应该这样做。 映射 id、开始和结束时间,reduce 什么都不做,然后在 finalize。我几乎可以,有点,有点,看到它......

【问题讨论】:

    标签: mongodb mapreduce


    【解决方案1】:

    这是您必须在应用程序中执行的操作。目前,mongoDB 不支持这样的东西。

    【讨论】:

    • 用新的 map/reduce/finalize 想法稍微改变了原来的问题
    【解决方案2】:

    您可以将某些窗口函数重写为子查询。看看这在聚合框架中是否可行。这个子查询应该在过滤和分组完成之后。

    Couchbase 将具有标准的窗口功能。 https://blog.couchbase.com/on-par-with-window-functions-in-n1ql/

    【讨论】:

      猜你喜欢
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多