当前位置: 首页 > 面试题库 >

返回最新“条纹”的数据行

伊俊能
2023-03-14
问题内容

给定一个简单的表,其中包含以下数据:

 id | result |   played   
----+--------+------------
  7 | L      | 2012-01-07
  6 | L      | 2012-01-06
  5 | L      | 2012-01-05
  4 | W      | 2012-01-04
  3 | W      | 2012-01-03
  2 | L      | 2012-01-02
  1 | W      | 2012-01-01

我将如何编写查询以使用PostgreSQL返回行的最后一次丢失或成功连胜?在这种情况下,我正在寻找以下结果:

 id | result |   played   
----+--------+------------
  7 | L      | 2012-01-07
  6 | L      | 2012-01-06
  5 | L      | 2012-01-05

我猜答案是使用lag()和分区语法,但是我似乎无法确定。


问题答案:

假设(您不知道)

  • 恰好有两个不同的值result(W, L)
  • id从最新条目最高的角度来说是连续的id

这样就可以了:

SELECT *
FROM   tbl
WHERE  id > (
    SELECT max(id)
    FROM   tbl
    GROUP  BY result
    ORDER  BY max(id)
    LIMIT  1
    );

这会获得和的最新ID ,是第一个WL两个中较早的ID 。因此,aLIMIT 1获得相反结果的最后一项。id高于该行的行将形成最新条纹。Voil谩。



 类似资料:
  • 问题内容: 我有一个带有文档条目的父表,还有一个历史记录表,每次用户访问其中一个文档时,该表都会记录一个审计条目。 我正在编写一个搜索查询,以返回具有最新用户ID的文档列表(按各种条件过滤),以访问结果集中返回的每个文档。 因此对于 我希望从搜索中获得回报,例如 我可以轻松地通过一个SQL查询以及两个表之间的联接来做到这一点吗? 问题答案: 修改Andy White产生的内容,并用DB2(和ISO

  • 是否有一种方法可以只得到那些数据我不需要所有的数据从所有其他的表组合键??多谢帮忙!

  • 行为如下: 当接收到新请求时,将对其进行处理,控制器将请求发送到外部设备并等待其应答。 此应答由接收。因此,当答案到达时,接收到的信息将保存在数据库中,并向发送一个信号以唤醒它。 当这个控制器被唤醒并试图从数据库中检索更新的信息时,我的问题就来了。这些信息不是刚刚存储的信息,而是以前存储的信息。 我已经检查了数据是否被正确地存储,它是正确的。在解锁ClientController之前,新数据在数据

  • 条款29: 避免返回内部数据的句柄 请看面向对象世界里发生的一幕: 对象a:亲爱的,永远别变心! 对象b:别担心,亲爱的,我是const。 然而,和现实生活中一样,a会怀疑,"能相信b吗?" 同样地,和现实生活中一样,答案取决于b的本性:其成员函数的组成结构。 假设b是一个const string对象: class string { public: string(const char *value

  • 希望我不会把事情搞复杂。我编写了以下SQL,返回用户他们最近的事务满足一个条件(TRANS_TYPE NOT IN(4,6,21,23)或DESTORIT_OPTION&64<>64)。 我通过使用 前面代码中的sub查询将返回所有用户的所有事务,并按DESC顺序对其进行排序,外部SELECT将通过检查rank 1事务来显示满足条件的用户。 我想要的是像这样的东西 FOREACH user如果用户

  • 问题内容: 我有一个角度服务,可以返回从服务器获取的数据的承诺。在固定的时间间隔内多次请求此数据,以使显示保持最新。有时响应速度可能很慢(最多10秒),如果两个请求重叠并且第一个请求最后响应,我将获取应用程序中显示的过期信息。时间线如下所示: 目前,我为请求保留一个计数器,使.then函数关闭该请求,如果该数据太旧,则将其丢弃。我想知道那里的一个Promise库是否已经做到了,或者是否有一种标准的