【发布时间】:2009-09-28 04:16:31
【问题描述】:
我在PostgreSQL 中有一个表,我对它运行了一个查询,其中包含几个返回多行的条件,按其中一列排序。一般是:
SELECT <some columns>
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC
现在我只对从此查询中获取第一行和最后一行感兴趣。我可以将它们放在数据库之外,在我的应用程序中(这就是我实际所做的),但我想知道是否为了获得更好的性能,我不应该只从数据库中获取我真正感兴趣的那两条记录。
如果是这样,我该如何修改我的查询?
【问题讨论】:
-
使用聚合函数 MIN & MAX:postgresql.org/docs/8.2/static/tutorial-agg.html
-
@rexem:最小值和最大值不适用于多列 - 只有当您按此列排序时,它们才适用于单列。
-
您可能还想看看
SELECT DISTINCT ON (...) ... ORDER BY ...。见PostgreSQL documentation。
标签: sql postgresql