【问题标题】:Which row is returned using DISTINCT ON in Postgres在 Postgres 中使用 DISTINCT ON 返回哪一行
【发布时间】:2017-12-12 07:37:25
【问题描述】:

当我在 PostgreSQL 中使用 DISTINCT ON(在 django 中不同)时,在具有相同字段的行组中检索到哪些行?

【问题讨论】:

  • 最先出现的那个
  • 第一个值
  • Distinct 不会删除任何内容
  • @Sayse by delete 我的意思是检索到哪一行?

标签: postgresql distinct-on


【解决方案1】:

The documentation 说:

考虑所有表达式都相等的一组行 重复,并且只有集合的第一行保留在输出中。 请注意,集合的“第一行”是不可预测的,除非查询 在足够多的列上进行排序,以保证唯一的排序 到达DISTINCT 过滤器的行。

因此,如果您添加 ORDER BY 子句,则会保留该顺序的第一行。

如果没有ORDER BY 子句,就无法知道将保留哪一行。

【讨论】:

  • 是的,我尝试了一些,但每次结果都会改变。需要订购才能获得静态结果。
猜你喜欢
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多