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

如何在PostgreSQL中按距now()的距离排序(未来优先)

禹智渊
2023-03-14
问题内容

我有一个date字段,显示为从今天起的天数。因此2055-01-011950-01-01将分别显示为正数和负数。现在,我希望对它们进行排序,以便非负数首先以升序排列,然后负数以降序排列。例如:

0
1
2
3
4
-1
-2
-3

问题答案:

以下内容也可以工作:

 ORDER BY expiry < CURRENT_DATE, abs(expiry - CURRENT_DATE)

但是,此表单不会使用索引来按所需顺序生成行。如果您的查询将从中受益(从表中选择大多数行或使用限制),则需要使用并集:

SELECT ... WHERE ... AND expiry >= CURRENT_DATE ORDER BY expiry
    UNION ALL
SELECT ... WHERE ... AND expiry < CURRENT_DATE ORDER BY expiry DESC


 类似资料:
  • 问题内容: 我有以下模型: 我应如何查询以距离排序(距离为无穷大)? 如果需要,可以在PosgreSQL,GeoDjango上工作。 问题答案: 首先,最好使一个点字段而不是使lat和lnt分开: 然后,你可以像这样过滤它:

  • 问题内容: 无法弄清楚如何对用户附近的 地址 进行自动 排序 。我不明白从哪里开始以及如何编写代码。 我的 firebase中 有地址。地址的类型为字符串(不是纬度/经度)。例: 我知道需要从firebase 使用 查询 ,但是如何使用 query ,我现在不明白。 这是我的代码: 如何使用 Firebase中的* 数据在用户附近自动 排序 地址? * 问题答案: 这是一个复杂的过程,需要多个步骤

  • 我正在尝试按地理距离对具有嵌套地理点映射的索引进行排序。 这是我的简化映射: 这里,每个组织可以有几个地点点。 文档: 这是我的查询(PHP数组): 预期结果 : 我希望按geo_point排序资源(检查每个位置,然后检查某个位置是否靠近给定的纬度/经度)

  • 我正在尝试一个mysql查询来根据距离排序帖子,比如说在半径250英里内,所有的工作都很好,除了我需要以一种方式排序帖子,特色帖子总是在顶部。这是我的mysql查询(我正在wordpress上做)。 问题是ORDER BY,它给我的错误是“Subquery returns多于1行” 如果删除ORDER BY(从wp_postmeta中选择wp_postmeta.meta_value,wp_post

  • 所以我有jQuery数据表设置和运行良好。我的最终目标是允许用户使用谷歌位置自动完成,更新他们的位置,然后在刷新时将一个“可排序”的距离列添加到我的数据表表中。 计划是在google autocomplete的文本输入旁边有一个按钮,上面写着使用这个地址,一旦用户使用autocomplete搜索并找到一个地址,然后按下按钮,我想(可能)将它们发送到加载页面几秒钟,同时 1) 阅读文本字符串,将其格

  • 问题内容: 我有一个具有这样的结构的表: 我想计算给定坐标与数据库中保存的坐标之间的距离。 我当前的查询: 再加上一些的数据。 有什么方法可以优化该查询?进行连接大约需要13毫秒。 我还需要在此处添加一些以及用于分页的商店总数。 问题答案: 这里有一些想法,根据您的实际情况,其中一些想法可能不适用。 您可以将纬度和经度转换为弧度,并将其存储在行中。这将节省这些计算的成本(实际上,在存储数据时,成本