问题标签 [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 - SQLAlchemy 在子查询中的 DISTINCT ON
我对 ORM SQLAlchemy 的查询有疑问。
我需要这样写子查询
通过 ORM SQLAlchemy,但是当我.subquery().alias("q")
在查询中使用时,DISTINCT ON
被编译为DISTINCT
. 为什么以及如何解决它?
没有 .subquery():
编译为
使用 .subquery():
编译为
sql - activerecord 中的最新内部查询
我有一张桌子users
:
谁阅读了多个books
:
我想在我的book
模型中创建一个范围,为每个用户获取最新的书籍。有很多使用纯 SQL 执行此操作的示例,我遇到的问题是创建一个灵活的范围,该范围可以与计数、内部查询或您通常使用范围的任何其他方式一起使用。
到目前为止,我的book
模型中有这个:
这非常接近我想要的。它适用于计数,但不适用于更复杂的情况。
例如,如果我想获取他们最新一本书是“Garry Potter”的用户列表,我会尝试这样的事情:
活动记录被混淆并生成以下 SQL:
这给出了以下错误:
有没有一种优雅的方式来实现这一目标?
postgresql - Postgresql - 在限制 100 上选择不同
可能有一个简单的解决方案。但是我的问题是如何在以下查询中选择 100 或 1000 个不同的 avclassfamily 值?
理想情况下,会有一个类似于“select distinct ON (1000) (avclassfamily)”的命令,但没有。
如果您有解决方案或有什么我可以澄清的,请告诉我
编辑:根据要求,查询的更简单版本:
但是说是否可以在那里选择 100 个不同的值
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
。我不明白为什么这两个查询的行为有所不同?如何修复视图查询以与表查询相同的方式工作?
我的最终目标是用视图子查询替换所有表子查询,以便我们可以轻松地将草稿、活动和存档设计分开。
sql - PostgreSQL 区别开
我无法定义别名或选择特定列,只能使用通配符:
在职的:
不工作:
错误
也不工作:
任何想法?
postgresql - PostgreSQL - 按array_position排序并在另一列上不同
我有一个看起来像这样的查询(实际查询和表更复杂):
这给了我一个按特定顺序(数组传递的 uuid 顺序)的类别名称列表。例如:
我想做的是在该查询中添加一个 DISTINCT ON 'item.other_uuid'。所以结果列表将是:
我怎样才能做到这一点?Postgres 希望 ORDER BY & DISTINCT 匹配,但这不是我查询的正确顺序。
我试图将其设为子查询并在主查询中使用 DISTINCT 但未维护顺序...
postgresql - 为什么子查询中的 distinct on 会损害 PostgreSQL 的性能?
我有一张users
带有字段id
和email
. id
是主键并且email
也被索引。
如果我distinct on (email)
在子查询中使用子句查询表,我会受到显着的性能损失。
将其与distinct on (id)
成本小于上一个查询的千分之一进行比较。
为什么是这样?
我遇到的真正问题是我正在尝试创建一个视图,该视图执行distinct on
一个不唯一的索引列并且性能非常糟糕。
postgresql - Postgres 区分大小写
我有一个查询,我在CASE
里面使用这样的语句DISTINCT ON
:
运行时,我收到此错误:
我尝试as _group_key_0
在 distinct on 子句中使用别名,但这又是抛出一个不同的错误。
有没有办法以不同的方式使用 CASE 语句并使其工作?
postgresql - 选择已排序子组的最大行数
使用 PostgreSQL 11,我有一个表,其中包含每个月的每一天的 DAY 和 MONTH_TO_DAY 条目。我想为每个帐户选择最近的 MONTH_TO_DAY 条目。我的桌子是:
如果有帮助,条目总是按时间降序排列。
在询问所有帐户的查询中,由于 31 日是 08 的最后一天,而 1 日是 09 的最新条目,我的预期输出将是
我在想我想按月对条目进行分组(截断 dd/hh/ss),然后选择每个组中时间戳最大的行。我可以用这个得到正确的行,但我不知道如何得到任何其他字段。
我还认为我可以在类似下面的东西上使用 distinct,但我对 distinct on 或 date_trunc 不太熟悉,我不知道如何一起使用它们。