在 sql 请求中获取某个项目的最后一次出现

getting the last occurence of a certain item in a sql request

我正在尝试向我的数据库写入 sql 请求,以便获得某个项目的最后一次出现,这就是我的意思,通过一个例子来说明:

pigc=# SELECT date FROM msr_history WHERE pos = 'DV' AND msr_id = 177;
            date            
----------------------------
 2018-06-20 08:04:09.724103
 2018-06-20 08:09:49.484921
(2 rows)

我的例子的第一行是我的 sql 请求,我试图只获取最后一个日期,在这个例子中就是这个:2018-06-20 08:09:49.484921 请注意,日期的数量可能不同,所以我不能每次都手动 select 第二个日期。谢谢你的帮助。

使用 select max(column) 检索 where 子句中包含的所有行的特定数据类型的最大值。

在这种情况下,不需要聚合,因为没有检索到非聚合列。

https://www.postgresql.org/docs/9.5/functions-aggregate for a complete list of aggregate functions and specifically https://www.postgresqltutorial.com/postgresql-max-function

最快的实现方式是在查询中使用 LIMIT 子句。这将阻止在您的查询中使用聚合函数,并将 运行 最快 -

SELECT date
  FROM msr_history
 WHERE pos = 'DV'
   AND msr_id = 177
 ORDER BY date DESC
 LIMIT 1;