这个问题已经在这里有了答案 :
8年前关闭。
可能重复:
SQL Server:只有GROUP
BY中的最后一个条目
我有一个这样的表:
id| name | attendence
1 | Naveed| 1
2 | Naveed| 1
3 | Adil | 1
4 | Adil | 1
我使用以下查询:
SELECT * FROM `test` WHERE `attendence`=1 GROUP BY name
以上查询的结果:
id| name | attendence
3 | Adil | 1
1 | Naveed | 1
在结果组上方按名称排列行,但显示每个组的第一行。我想从每个组中选择最后一行(按ID)。
例如:
id| name | attendence
2 | Naveed | 1
4 | Adil | 1
如何编写以上结果的查询。
谢谢
SELECT a.*
FROM test a
WHERE a.attendence = 1
AND NOT EXISTS (select 1 from test where name = a.name and id > a.id and attendence = 1)
GROUP BY name
甚至可能不再需要该组。
问题内容: 我正在使用mysql并遇到一些问题。我想检索插入的最后一行。 <<以下是详细>> 以下是我创建表格的方式。 我在其中插入了四个值,如下所示 当我执行时,我得到如下输出 当我尝试下面的代码时, 我得到如下输出。 但是,当我使用代码时,出现错误 使用时,表中没有任何数据。 链接以播放数据 注意: 这里我使用4只是为了获得所需的输出。稍后我可以从查询中获取 如果我只想查看最后一条记录,请建议
问题内容: 如标题所示,我想选择以分组的每组行的第一行和最后一行。 我在此表中包含以下数据: 我需要获取的是列开头的第一个值和列末尾的最后一个值,并按group by group列进行分组。 结果表应如下所示: 我使用和和进行了查询。它可以在SQL Server 2012中使用,但不能在SQL Server 2008中使用。我需要一个可以在SQL Server 2008中执行的查询。 问题答案:
问题内容: 有一个包含数据的表,如下所示: 如果我运行查询,我将得到的结果为: 什么查询将返回以下结果? 即,应返回每个组中的最后一条记录。 目前,这是我使用的查询: 但这看起来效率很低。还有其他方法可以达到相同的结果吗? 问题答案: MySQL 8.0现在支持窗口功能,就像几乎所有流行的SQL实现一样。使用这种标准语法,我们可以编写每组最多n个查询: 以下是我在2009年为此问题写的原始答案:
问题内容: 我有一个包含以下列的数据库表: 在此表中,唯一的唯一值位于id中,即主键。 我想基于datetime值检索该表中的最后一组不同的记录。例如,下面是我的桌子 我想检索ID为4、7、8和9的记录,即具有不同代码(基于datetime值)的最后一组记录。我强调的只是我要实现的目标的一个示例,因为此表最终将包含数百万条记录和数百个单独的代码值。 我可以使用什么SQL语句来实现这一目标?我似乎无
我正在尝试对存储在elasticsearch中的记录实现搜索查询。记录结构看起来像这样。 一个框可以包含多个项目。例如,Box3可以有Item1、Item2和Item3。因此,在elasticsearch中,我将有3个不同的文档。同时,同一个框和同一个项目也可以存在,但地址不同。这些文档的transactionID可能相同,也可能不相同。 我的要求是获取最后n个最近的和不同的Transaction
问题内容: 我有一个包含以下各列的模型: 我有索引和。 现在,我想获取由排序的每个对象的第一个日志。 一种方法是对每个用户名运行以下查询: 但这显然会查询数据库很多次(等于用户名的数量)。有什么方法可以只执行一个数据库查询吗? 问题答案: 另一种情况: 返回每个“第一”条目 的整行。 这种Ruby语法应该可以工作: