问题标签 [greatest-n-per-group]
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 - SQL查询以获取给定键的每个实例的最新行
我正在尝试从一个表中获取 ip、用户和最近的时间戳,该表可能同时包含用户的当前 ip 和一个或多个先前的 ip。我想为每个用户添加一行,其中包含最新的 ip 和相关的时间戳。因此,如果表如下所示:
我希望查询的输出是:
我可以在单个 sql 查询中执行此操作吗?如果重要,DBMS 是 Postgresql。
postgresql - Postgresql vlookup
假设我有一个包含以下列的表“uservalue”:
我可以轻松获得每个组的最大值:
我想要的是它返回每个组中具有最高值的 user_id。matlab中的max函数也会返回最大值的索引,有没有办法让postgresql做同样的事情?
mysql - 多列的 MySQL Select 语句 DISTINCT
我目前正在尝试构建一个有点棘手的 MySQL Select 语句。这是我想要完成的事情:
我有一张这样的桌子:
基本上,我想做的是能够 SELECT/GROUP BY the stringID(stringID 是线程的图片)而不是重复它。此外,我想选择最近的 stringID 行(在上面的示例中是 uniqueID 3)。
因此,如果我要查询数据库,它将返回以下内容(最新的 uniqueID 在顶部):
我希望这是有道理的。谢谢你的帮助。
mysql - 如何在 mysql 查询中从每个组中选择多个项目?
我有一些表单的论坛数据
帖子(作者,thread_id,文本)
对于每个作者,我想选择 10 个与该作者关联的不同 thread_id(可能超过 10 个,并且数量会因作者而异)。
我正在考虑使用 GROUP BY 对“作者”进行分组,但我不明白如何表达每个组的 LIMIT,以及如何将每个组扩展回 10 行。
sql - 使用 MAX 和 GROUP BY 选择所有对应的字段
我有这张桌子:
我想提出一个请求,该请求将为每个deal_id
具有最高的行timestamp
和相应的status_id
.
所以对于这个例子,我会返回 2 行:
我试着用这个查询来做
但它会返回错误status_id
:
mysql - 检索每个组中的最后一条记录 - MySQL
有一个messages
包含数据的表,如下所示:
如果我运行一个查询select * from messages group by name
,我会得到如下结果:
什么查询将返回以下结果?
也就是说,应该返回每组中的最后一条记录。
目前,这是我使用的查询:
但这看起来效率很低。还有其他方法可以达到相同的结果吗?
sql - SQL 查询,每组选择 5 个最近的
我有这张桌子
language_id 是指记录使用的语言。我想做的是检索每个 language_id 中五个最近(ORDER BY time_posted DESC LIMIT 5)记录的列表。我可以在 PHP 中使用许多不同的 SQL 查询循环执行此操作,但我觉得有一种更简单的方法。
我得买一本关于 SQL 的书,哈哈。
谢谢。
mysql - 在 MySQL 中按 Top N 分组
stackoverflow 上有很多 SQL Top N 问题,但我似乎找不到与我的情况相匹配的问题。我想在前 n 个查询中执行一些分组。我的数据看起来像这样(显然是假值)。
该表的日期范围涵盖几个月,每月有数千行。我想做的是有一个查询告诉我每个月哪些 10 个 IP 地址最常出现。我可以使用以下方法在一个月内执行此操作:
但我真正想要的是能够看到数据集中每个月的前 n 个。这基本上禁止我使用我指定的 where 子句。当然,当我这样做时,我整个月都会得到 10 分。我正在寻找的结果应该是这样的:
这可以在 MySQL 中完成吗?我遇到的障碍似乎是 MySQL 不允许在 UNION 中包含的查询语句中使用 ORDER BY。谢谢您的帮助!
sql - 如何查询数据库中用户的排名,但只考虑每个用户的最新条目?
假设我有一个名为“Scrape”的数据库表,可能设置如下:
我试图能够根据他们的赢/输比率对我的用户进行排名。但是,每周我都会抓取有关用户的新数据,并在 Scrape 表中创建另一个条目。
如何查询按赢/输排序的用户列表,但只考虑最近的条目(ScrapeDate)?
另外,您认为人们会访问该站点并且刮擦可能正在完成中是否重要?
例如我可以有:
其中,这表示到目前为止只更新了 Bob,并且正在更新 Frank 但尚未插入的抓取。你也将如何处理这种情况?
所以,我的问题是:
- 您将如何处理仅查询每个用户的最新抓取以确定排名
- 您是否认为数据库可能处于更新状态(特别是如果一次抓取可能需要 1 天才能完成)并且并非所有用户都已完全更新这一事实很重要?如果是这样,您将如何处理?
谢谢你,也谢谢你对我的相关问题给我的答复:
sql - 加入有限的子查询?
我releases
在 SQLite3 数据库中有这张表,列出了应用程序的每个发布版本:
所以对于每个 app_id,都会有多行。我有另一张桌子,apps
:
我想显示应用程序的名称和最新版本,其中“最新”表示 (a) 最新 release_date,如果有重复,(b) 最高 release_id。
我可以为单个应用程序执行此操作:
但当然 ORDER BY 适用于整个 SELECT 查询,如果我省略 WHERE 子句,它仍然只返回一行。
这是对小型数据库的一次性查询,因此慢速查询、临时表等都很好——我只是想不通用 SQL 的方式来做这件事。