问题标签 [distinct-on]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - postgres 中的 distinct() 函数(不是选择限定符)
我刚刚遇到一个 SQL 查询,特别是针对 Postgres 数据库,它使用一个名为“distinct”的函数。即:
请注意,这不是 SELECT 上的普通 DISTINCT 限定符——至少它不是 DISTINCT 限定符的正常语法,请注意括号。它显然是使用 DISTINCT 作为一个函数,或者这可能是一些特殊的语法。
知道这意味着什么吗?
我试着玩了一下,如果我写
我得到相同的结果
当我将它与同一个选择中的其他字段结合起来时,我不清楚它到底在做什么。
我在 Postgres 文档中找不到任何内容。
谢谢你的帮助!
sql - PLPGSQL distinct on,order by,不返回任何内容
我做了这个 plpgsql 函数,它没有返回任何东西!而如果我取出查询部分并在单独的 sql 窗口中执行它,它会返回正确的行。
我还认为该查询并不是真正的最佳选择,因此不胜感激(对 plpgsql 来说非常新)
非常感谢!
sql - PostgreSQL 不同,分组依据,合二为一?
我在使用 PostgreSQL 查询时遇到了一些问题
我想要的是一个“活动”列表,按距离排序,并且在距位置 [in_lat, in_lng, in_radius] 的最小距离内现在,我正在检索距离(使用 distance_in_km(...) )两次。一次用于订购,一次用于检查活动是否在我的首选范围内。
此外,一个活动可能有多个“Campaignreceiver”条目(receivetype [EMAIL、WEBSITE 等...])
而且我只想检索一次广告系列。因此 DISTINCT ON。
所以问题是,我怎样才能得到像“WHERE distance < in_radius”这样的工作。我的猜测是添加一个 GROUP BY 和 HAVING 但我做了一些测试并没有得到工作。
很感谢任何形式的帮助!!!
sql - 具有不同 ORDER BY 的 PostgreSQL DISTINCT ON
我想运行这个查询:
但我得到这个错误:
PG::Error: ERROR: SELECT DISTINCT ON 表达式必须匹配初始 ORDER BY 表达式
添加address_id
为第一个ORDER BY
表达式可以消除错误,但我真的不想添加排序address_id
。是否可以不订购address_id
?
postgresql - 选择按某列排序并在另一列上不同的行
相关 - PostgreSQL DISTINCT ON 与不同的 ORDER BY
我有餐桌购买(product_id、purchased_at、address_id)
样本数据:
我期望的结果是每个 address_id 的最近购买的产品(整行),并且该结果必须按 purchase_at 字段的后代顺序排序:
使用查询:
我越来越:
所以行是相同的,但顺序是错误的。有什么办法解决吗?
sql - 如何在 PostgreSQL 查询中对不同的元组进行排序
我试图在 Postgres 中提交一个只返回不同元组的查询。在我的示例查询中,我不希望一个cluster_id/feed_id 组合存在多次的重复条目。如果我做一个简单的:
我明白了,但我也想根据num_docs
. 因此,当我执行以下操作时:
我收到以下错误:
我想我明白为什么我会收到错误(除非我以某种方式明确描述该组,否则不能按元组分组)但是我该怎么做呢?或者,如果我对错误的解释不正确,有没有办法实现我的初始目标?
postgresql - PostgreSQL 不允许我按顺序对列进行分组
在 PostgreSQL 中,我想一次获取每个用户并按日期排序。
这是我的查询:
这是一个示例数据:
现在,我要做的是通过 useridx 对它们进行分组并按日期排序来获取此表。
预期结果:
实际结果
我也不想分组日期。我只想用 useridx 分组并按日期 DESC 对它们进行排序。
任何帮助/想法表示赞赏!
注意:我也尝试过 Distinct。不符合我的需要或我做错了。
我很困惑,被困在DISTINCT ON
和rank()
方法之间。
结论:对于在这里遇到相同问题的人,可以将其作为答案阅读。@kgrittn 和 @mu 都太短了,答案都是正确的。我将继续在我的项目中使用答案和模式,并且及时我可以理解哪个是最好的-我猜-。因此,选择其中之一并继续您的工作。你会没事的。
上次更新:有时,Distinct On 会从结果中排除一些 id。假设我有一个 id 列,我有 6 行是相同的。因此,从结果中排除它是不同的,但 rank() 只是结果。所以,使用 rank()!
sql - 如何从postgresql中的sql结果中获得最大的结果
我正在使用 postgresql 8.3,我有一个简单的 sql 查询:
所以,我得到了这样的结果集:
现在,我想通过instance_id获取最大id,结果就像自爆
我怎么能得到结果?我使用以下 sql,但出现错误。
错误:关系“x”不存在
任何可以帮助我的人,非常感谢!
ruby-on-rails-3 - 使用rails对postgres“DISTINCT ON”应用不同的顺序
我有一个 Rails 应用程序:
user has_many :projects
user has_many :tasks, :through => :projects
project has_many :tasks
每个任务都有一个里程碑日期。
要显示包含下一个里程碑日期的项目详细信息表,我正在使用:
这工作正常。
我现在希望能够对表格列进行排序。
根据 PostgresDISTINCT ON
不可排序,您必须将其包装在另一个选择语句中,即SELECT * FROM (SELECT DISTINCT ON....) ORDER BY column_3
我确实认为被排序的列可以根据需要在 SQL 中工作,即(按项目名称 DESC 排序):
这可行,但我也希望能够按里程碑订购,但那样行不通。
有人能告诉我如何转换我的 rails 查询,以便它可以按任何列排序吗?
更新
我想我的问题只是如何将 activerecord 查询包装在环境中SELECT
和ORDER BY
?
我想我已经设法使用:
这是最好的方法还是有人能想到更好的方法?- find/paginate_by_sql 似乎是一种解决方法,我更愿意留在 activerecord 查询的范围内。
谢谢
performance - Postgresql:SELECT DISTINCT ON 的更快替代方案
我在将过滤后的数据从一个表复制到另一个表(具有类似结构)时遇到问题。基本上,我有一个包含大约 110 亿行的大表,我想将基于其中一列(称为“指纹”)唯一的记录复制到另一个表中。我试过这样的事情:
它通常有效,但速度很慢;我在一个包含 800 000 行的较小的表上对其进行了测试,花了将近一个小时。我尝试将 INSERT 更改为一对 COPY (带二进制选项)语句,但不知何故更糟......
我在 Linux LMDE 上运行 psql 服务器,i5-2410m 具有 6gigs 的 RAM。我不知道它是否需要这么长时间以及是否有办法改进它。我会很感激任何提示。