我收到一条错误消息
查询表达式'r = row_number() over ( ACell order by ACell desc的分区)中的语法错误(缺少运算符)
在Microsoft中,我不知道为什么,但它在中工作。
我的问题是:
select *
from
(select *, r = row_number() over (partition by ACell order by ACell
desc)
from cellTB) a
where
r <= 5;有人能帮我吗?
示例数据: cellTB
=================
ACell | RNC
=================
1 | 1
-----------------
1 | 2
-----------------
1 | 3
-----------------
1 | 4
-----------------
1 | 5
-----------------
1 | 6
-----------------
2 | 1
-----------------
2 | 2
-----------------
2 | 3
-----------------
2 | 4
-----------------
2 | 5
-----------------
2 | 6我只想选择前5从重复的ACell在MC访问。
发布于 2019-02-25 08:04:11
你的代码是。例如,对于Access SQL,您可以使用我的RowNumber函数,就像以前多次发布的那样:
发布于 2019-02-25 12:42:31
MS不支持row_number() (切换到另一个数据库的原因之一)。有一种方法可以使用关联子查询来执行您想做的事情:
select c.*
from cellTB as c
where (select count(*)
from cellTb as c2
where c2.Acell = c.Acell and
c2.id <= c.id -- this is the primary key column
) <= 5;这假设您的表有一个主键,在本例中称为id。
https://stackoverflow.com/questions/54859090
复制相似问题