问题标签 [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 投票
2 回答
7766 浏览

sql - PostgreSQL 中的多个 DISTINCT ON 子句

是否可以选择DISTINCT ON一些单独的、独立的列集的行?

假设我想要所有符合以下条件的行:

  • 区别于(name, birth)
  • 区别于(name, height)

因此,在下表中,标有红叉的行不会是不同的(带有失败子句的指示):

在上面的例子中,如果DISTINCT ON子句刚刚是DISTINCT ON (name, birth, height),那么所有的行都会被认为是不同的。

试过但没有用:

  • SELECT DISTINCT ON (name, birth) (name, height) ...
  • SELECT DISTINCT ON (name, birth), (name, height) ...
  • SELECT DISTINCT ON ((name, birth), (name, height)) ...
  • SELECT DISTINCT ON (name, birth) AND (name, height) ...
  • SELECT DISTINCT ON (name, birth) AND ON (name, height) ...
  • SELECT DISTINCT ON (name, birth) DISTINCT ON (name, height) ...
  • SELECT DISTINCT ON (name, birth), DISTINCT ON (name, height) ...
0 投票
2 回答
1420 浏览

sql - 如何在 Firebird 中使用 DISTINCT ON(PostgreSQL 的)?

我有一个带有数据的 TempTable:

我想得到以下数据:

在 PostgreSQL 中,我使用以下查询DISTINCT ON

在 Firebird 中,如何获取上述数据?

0 投票
1 回答
219 浏览

sql - SQL如何在连接中使用不同的计数函数

我是 sql 新手,正在使用 postgres 9.6,我有 2 个查询,我想将它们加入 1 。我想使用 Count 函数并按我在此处完成的降序排列字段

第一次查询

第一个查询正是我想要的相同顺序的信息,问题是我需要进行内部连接并从我在这里完成的第二个表中获取数据。第二个查询获取我需要的所有数据,但是我不知道如何在第二个查询中使用Count()函数,任何建议都会很棒。总而言之,第一个查询将我想要的数据减半,因为我需要加入第二个名为 zips on the fields (city and state) 的数据。第二个查询为我提供了我需要的所有数据,但我似乎无法让 Count() 函数在那里工作。

第二次查询

第一次查询结果

在此处输入图像描述

第二个查询结果:Lutz 应该在顶部而不是底部 在此处输入图像描述

0 投票
2 回答
3040 浏览

sql - 与 postgres 组“区别开来”

我有以下记录:

我们每小时运行一次以查看当前小时和前几个小时的每个 id 的结果。

仅当与前一小时的运行相比发生变化时,我们才插入一个新的记录(我们不想覆盖该值,因为我们想在 1 小时或 2 小时等之后测量该值。

我想对每个 id 的最新可用值求和(按 run_hour 排序) - 这些值。

在上面的示例中,9:00 运行和 7:00 运行时间的广告 1 没有记录 - 因为它与 8:00 运行和 7:00 运行时间相同

在上面的示例中,如果我询问 run 2017-06-25 09:00:00 的值的总和,我希望得到:

对于 id 1,计算为 10:(run_hour<2017-06-25 08:00:00> + run_hour<2017-06-25 09:00:00>),对于 id 2,计算为 11:(run_hour<2017 -06-25 09:00:00> + run_hour<2017-06-25 09:00:00>) 我写了以下查询:

但是我收到一个错误,run_hour 也必须在 GROUP BY 子句中。- 但如果我添加它,我会得到不正确的数据 - 还有我不需要的前几个小时的数据 - 我需要有数据的最新一小时。

如何在 group by 中使用“distinct on”?

0 投票
1 回答
120 浏览

ruby-on-rails - 在活动记录范围内的 select 语句中添加 DISTINCT ON

我正在尝试在具有范围的 Rails 中使用 distinct on,我在我的模型中创建了一个方法,如下所示:

当我执行此操作时,我得到如下错误:

在搜索时,DISTINCT ON我发现它应该是 postgres 使其工作的 select 语句中的第一个元素。

我想DISTINCT ON在 select 语句中添加。我尝试清除except(:select)这里获得的旧选择语句,但它不起作用,因为includes(:user)在进行左连接时先添加用户属性。

我正在使用Rails 4.0.13Postgres 9.4.12。任何帮助表示赞赏。

0 投票
2 回答
439 浏览

sql - Postgres 选择不同的笛卡尔积

如何从两列中进行选择,以使每个值仅显示一次?

例如。从此表:

拉出这个(A和B都不同):

我知道有几种可能的组合,我想要其中任何一种,但不是全部。

该表由 B 的不同值和 A 的不同值的笛卡尔积的子集组成。

我一直在干预窗口功能和分组依据,但还没有让它工作。

0 投票
1 回答
365 浏览

sql - 丢失具有不同的订单行 - PostgreSQL

我正在使用SQL,我想选择结果numero_engin if exist else numero_train。所以我习惯coalesce这样做。要删除重复的行,我尝试使用distinct. 但是使用时的问题distinct,我失去了行的顺序。

这是我的要求:

此请求返回按重复行排序的结果:

但是全局请求添加时distinct,结果显示混乱。

0 投票
0 回答
122 浏览

postgresql - 具有聚合函数的 DISTINCT ON

我想在 Postgres 中为每个用户获得最多视图的项目。这是我到目前为止的代码:

0 投票
2 回答
1240 浏览

sql - 在 PostgreSQL 的另一个表中选择每行时间戳之后的第一个事件

我有一张桌子,上面有某个人在某个时间戳上访问某个城市:

城市访问:

另一个表格列出了一个人购买冰淇淋的时间:

冰淇淋事件:

对于city_visits表中的每一行,我需要加入同一个人的下一个冰淇淋活动,以及它的时间戳和风味:

期望输出:

我尝试了以下方法:

DISTINCT ON条款禁止在每次城市访问中加入除一个未来冰淇淋事件之外的所有事件。它可以工作,但是它不会自动选择第一个,而是似乎会为同一个人选择未来的任何冰淇淋事件。我可以添加的任何ORDER BY条款似乎都不会改变这一点。

解决该问题的理想方法是使子句在每次必须过滤掉重复项时都DISTINCT ON选择最小值。ic_timestamp

0 投票
0 回答
64 浏览

mysql - 列随机值不同

我需要从我的表中取出 12 个问题。我有一个名为“bucket”的字段,它可能有重复的值。获取时,我只需要获取唯一的存储桶值,并且行数必须为 12。

这是我的查询:

谁能告诉我我在这里做错了什么?它有时不会返回 12 行。只要找到相同的存储桶值,就会发生这种情况。我认为,每当应用 distinct 时,都会删除重复行的值。因此,当我执行 rn<=4 时,它无法找到 3。因此只返回 3 行而不是 4 行。

所以,我需要先在bucket上应用distinct,然后再获取row_numbers。我该怎么做?