问题标签 [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.

0 投票
0 回答
204 浏览

sql - SQLAlchemy 在子查询中的 DISTINCT ON

我对 ORM SQLAlchemy 的查询有疑问。

我需要这样写子查询

通过 ORM SQLAlchemy,但是当我.subquery().alias("q")在查询中使用时,DISTINCT ON被编译为DISTINCT. 为什么以及如何解决它?


没有 .subquery()

编译为

使用 .subquery()

编译为

0 投票
1 回答
61 浏览

sql - activerecord 中的最新内部查询

我有一张桌子users

谁阅读了多个books

我想在我的book模型中创建一个范围,为每个用户获取最新的书籍。有很多使用纯 SQL 执行此操作的示例,我遇到的问题是创建一个灵活的范围,该范围可以与计数、内部查询或您通常使用范围的任何其他方式一起使用。

到目前为止,我的book模型中有这个:

这非常接近我想要的。它适用于计数,但不适用于更复杂的情况。

例如,如果我想获取他们最新一本书是“Garry Potter”的用户列表,我会尝试这样的事情:

活动记录被混淆并生成以下 SQL:

这给出了以下错误:

有没有一种优雅的方式来实现这一目标?

0 投票
0 回答
180 浏览

postgresql - Postgresql - 在限制 100 上选择不同

可能有一个简单的解决方案。但是我的问题是如何在以下查询中选择 100 或 1000 个不同的 avclassfamily 值?

理想情况下,会有一个类似于“select distinct ON (1000) (avclassfamily)”的命令,但没有。

如果您有解决方案或有什么我可以澄清的,请告诉我

编辑:根据要求,查询的更简单版本:

但是说是否可以在那里选择 100 个不同的值

0 投票
1 回答
117 浏览

postgresql - GROUP BY 和 DISTINCT ON 对表和视图的工作方式不同

我有一张桌子Design和一张名为ArchivedDesign. 视图声明为:

然后,我有一个大型查询,其中包含最新更改、缩略图等的简短摘要。整个查询并不重要,但它包含两个几乎相同的子查询——一个用于主表,一个用于视图。

链接到 SQL 小提琴:http ://sqlfiddle.com/#!17/d1d0f/1

查询对表有效,但对视图失败并出现错误column x."Modified" must appear in the GROUP BY clause or be used in an aggregate function。我不明白为什么这两个查询的行为有所不同?如何修复视图查询以与表查询相同的方式工作?

我的最终目标是用视图子查询替换所有表子查询,以便我们可以轻松地将草稿、活动和存档设计分开。

0 投票
1 回答
280 浏览

sql - PostgreSQL 区别开

我无法定义别名或选择特定列,只能使用通配符:

在职的:

不工作:

错误

也不工作:

任何想法?

0 投票
1 回答
1086 浏览

postgresql - PostgreSQL - 按array_position排序并在另一列上不同

我有一个看起来像这样的查询(实际查询和表更复杂)

这给了我一个按特定顺序(数组传递的 uuid 顺序)的类别名称列表。例如:

我想做的是在该查询中添加一个 DISTINCT ON 'item.other_uuid'。所以结果列表将是:


我怎样才能做到这一点?Postgres 希望 ORDER BY & DISTINCT 匹配,但这不是我查询的正确顺序。

我试图将其设为子查询并在主查询中使用 DISTINCT 但未维护顺序...

0 投票
1 回答
722 浏览

postgresql - 为什么子查询中的 distinct on 会损害 PostgreSQL 的性能?

我有一张users带有字段idemail. id是主键并且email也被索引。

如果我distinct on (email)在子查询中使用子句查询表,我会受到显着的性能损失。

将其与distinct on (id)成本小于上一个查询的千分之一进行比较。

为什么是这样?

我遇到的真正问题是我正在尝试创建一个视图,该视图执行distinct on一个不唯一的索引列并且性能非常糟糕。

0 投票
1 回答
66 浏览

postgresql - Postgres 区分大小写

我有一个查询,我在CASE里面使用这样的语句DISTINCT ON

运行时,我收到此错误:

我尝试as _group_key_0在 distinct on 子句中使用别名,但这又是抛出一个不同的错误。

有没有办法以不同的方式使用 CASE 语句并使其工作?

0 投票
1 回答
93 浏览

ruby-on-rails - Rails ActiveRecord 选择按时间戳排序的不同记录

在下面的数据表中:

在此处输入图像描述

我正在尝试从该表中选择基于 、 和 列不同itemable_iditemable_type记录user_id。我还想要按 . 排序的记录last_viewed_at。在 Rails 中,我已经能够使记录变得不同,但是我尝试的每一种方式总是获取记录 ID1而不是4for ThingType1that has itemable_id 32. 本质上,我试图最终得到的记录集是一个 ID 为 4、3 和 2 的行。我怎样才能有效地做到这一点?

0 投票
1 回答
31 浏览

postgresql - 选择已排序子组的最大行数

使用 PostgreSQL 11,我有一个表,其中包含每个月的每一天的 DAY 和 MONTH_TO_DAY 条目。我想为每个帐户选择最近的 MONTH_TO_DAY 条目。我的桌子是:

如果有帮助,条目总是按时间降序排列。

在询问所有帐户的查询中,由于 31 日是 08 的最后一天,而 1 日是 09 的最新条目,我的预期输出将是

我在想我想按月对条目进行分组(截断 dd/hh/ss),然后选择每个组中时间戳最大的行。我可以用这个得到正确的行,但我不知道如何得到任何其他字段。

我还认为我可以在类似下面的东西上使用 distinct,但我对 distinct on 或 date_trunc 不太熟悉,我不知道如何一起使用它们。