首页 > 解决方案 > Access 2016 仅在字段包含不同文本的情况下返回第一条记录

问题描述

我正在尝试编写一个查询来返回表中每个组的第一条记录。

该表包含多个重复的 playerId,并且一些 BowlingStyle 字段包含不同的文本(大多数是相同的)。

我只想返回带有第一个保龄球样式的 playerIds 列表。

我认为这会起作用,但它仍然返回多个 playerId,其中 BowlingStyle 字段包含不同的文本。

谁能看到我做错了什么?

谢谢

SELECT First(Lineups.playerId), First(Lineups.bowlingStyle)
FROM Lineups
GROUP BY Lineups.playerId, Lineups.bowlingStyle;

标签: sqlms-access

解决方案


FIRST()如果数据集没有排序,则函数返回的值是任意的。
因此,从按id(自动编号)或日期(如果存在)之类的列对表进行排序的查询中进行选择,然后group by playerId仅:

SELECT playerId, First(bowlingStyle) AS First_bowlingStyle
FROM (SELECT * FROM Lineups ORDER BY id)
GROUP BY playerId

推荐阅读