问题标签 [groupwise-maximum]

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 投票
32 回答
901560 浏览

mysql - 检索每个组中的最后一条记录 - MySQL

有一个messages包含数据的表,如下所示:

如果我运行一个查询select * from messages group by name,我会得到如下结果:

什么查询将返回以下结果?

也就是说,应该返回每组中的最后一条记录。

目前,这是我使用的查询:

但这看起来效率很低。还有其他方法可以达到相同的结果吗?

0 投票
4 回答
3726 浏览

sql - 仅从表中选择最新记录并使其快速,如何?

美好的一天,我有一个我一直在努力解决的问题,希望有人已经找到了一个聪明的解决方案(我使用 MySQL)。

我有这样的表:

我的目标是为用户选择最后插入的记录并使其快速。日志表很大(大约 90 万条记录),所以我的第一个方法是:

但似乎它为每一行计算子查询(EXPLAIN 显示 DEPENDENT QUERY)。当我将此查询拆分为两个时:

跑步是可以接受的。这可以通过一个查询来实现吗?

0 投票
6 回答
8583 浏览

r - 在 r 中的组中选择具有最大变量值的行

返回列表索引,而不是整个 data.frame 的索引

b.2我试图返回每个子组的最大值a.2。我怎样才能有效地做到这一点?

0 投票
1 回答
5503 浏览

mysql - mysql加入子查询

我有以下表格:

我想知道是否有人可以就如何优化或重写以下查询给我一些建议:

基本上,我在两个不同的时间获取每个 channel_name 的值、状态和连接字段。由于 t0 始终 <= t1,因此字段可能存在于 t1 中,但不存在于 t0 中,我希望将其显示出来。这就是我使用 RIGHT JOIN 的原因。如果 t1 不存在,则 t0 也不存在,因此不应返回任何行。

问题似乎是因为我加入了子查询,所以没有索引可以使用?我尝试重写它以首先对数据表的 channel_id 进行自连接,但那是数百万行。

当 t0.value = t1.value & t0.status = t1.status & t0.connected = t1.connected 时,如果能够为每个最终行添加一个布尔字段,这也是很好的。

非常感谢您的宝贵时间。

0 投票
2 回答
213 浏览

mysql - mysql更新分组最大值

我有下表

对于每个channel_id,我想找到具有最大获取时间的行并将值更改为NULL,状态为NULL并连接到0。这可能吗?该手册说您无法更新表并从子查询中的同一表中进行选择...

感谢您的时间。

0 投票
4 回答
1007 浏览

mysql - 在mysql查询中查找多行的最大列集

我有一个包含以下字段和数据的表。

从这里我必须找出特定代码的最大值(年,月)。结果必须是

请帮我解决这个问题。

0 投票
4 回答
3151 浏览

sql - SQL:如果另一列不匹配,如何排除最大值

我正在使用 Oracle 10g。我在
SQL 上的研究 - 如何选择具有最大值

http://jan.kneschke.de/projects/mysql/groupwise-max/列的行

解决如何处理 max(row) 然后找到其他 max(rows) 但是,我还没有。

条件: ID 的 max(enroll_date) 代码必须为“WHEAT”。
我不想要代码为“WHEAT”的最长注册日期。仅当最大注册日期的代码为“WHEAT”时,我才需要该行。

问题:如何编写查询以满足条件?

这不起作用,因为它返回 ID=30, Code = WHEAT 其中 Date 12/25/2001 这不是该 ID 的最大(日期)。

这也不起作用,因为它也返回 ID=30,代码 = WHEAT,其中日期 = 2001 年 12 月 25 日。

这是我的表

0 投票
3 回答
1564 浏览

mysql - MySQL 基于事件的支持票证系统

整个下午。

我最近的任务是开发基于事件的支持票证系统,但我遇到了很多问题,我认为问题在于数据库结构。

目前它看起来有点像这样:

因此,每当工单更改阶段时,都会在 ticket_events 表中添加一个新行,指定它移动到哪个阶段以及何时移动,并且工单表中的 stage_id 字段将使用新阶段进行更新。

问题在于这违反了数据库规范化规则,因为票证的当前阶段由票证.stage_id 和票证事件表中的最新记录定义。在我试图写一份报告显示任何时间点的未处理票证数量时,我发现了为什么会这样。似乎很难获得任何类型的 SQL 来快速从事件表中检索当前阶段。

我设法在这个非常有用的页面 (http://kristiannielsen.livejournal.com/6745.html) 上使用选项 2 构建了一个相当快速的查询,但是我遇到了一个让我陷入困境的问题。

对于当前数据,event_id 并不总是以相对于日期的升序运行。此外,由于某些自动处理脚本,一张票很可能有两个日期完全相同的事件。这意味着任何尝试使用事件表的查询都需要“按日期排序,event_id”,这对于子查询和分组几乎是不可能的。

任何人都可以就我如何克服这些问题提供任何建议吗?有没有更好的方法来定义事件的顺序?

非常感谢。西蒙

0 投票
27 回答
1668081 浏览

mysql - SQL仅选择列上具有最大值的行

我有这张文件表(这里是简化版):

ID 内容
1 1 ...
2 1 ...
1 2 ...
1 3 ...

如何为每个 id 选择一行并且只选择最大的 rev?
使用上述数据,结果应包含两行:[1, 3, ...][2, 1, ..]。我正在使用MySQL

目前我在while循环中使用检查来检测和覆盖结果集中的旧转速。但这是实现结果的唯一方法吗?没有SQL解决方案吗?

0 投票
3 回答
94 浏览

mysql - 复杂的 SQL 连接查询 - 获取最新行

我的 MySQL 数据库有一个表(cfg),其中包含 4 个字段:id、name、data 和 location 这个表用于服务多个子域(location)。我需要获取给定子域(位置)的每个名称的最新行列表。

示例数据

以下查询工作正常,但似乎过于复杂和缓慢。有人有建议吗?

它会回来