首页 > 解决方案 > 获取每个 ID 的前 1 行

问题描述

有一些关于它的帖子,但我无法让它工作......我只想为每个 ID 选择一行,例如在 oracle 中的分区上的 row_number() 但在访问中。

SELECT a.*
FROM DATA as a
WHERE a.a_sku = (SELECT top 1 b.a_sku
           FROM DATA as b
           WHERE a.a_sku = b.a_sku)

但我从中得到相同的表数据

表数据示例 https://ibb.co/X4492fY

标签: sqlms-access

解决方案


如果您不关心返回每组记录中具有匹配a_sku值的哪条记录,则可以使用FirstorLast函数,例如:

select t.a_sku, first(t.field2), first(t.field3), ..., first(t.fieldN)
from data t
group by t.a_sku

推荐阅读