在 MS Access 中实现“Row Number Over Partition By”
在 MS Access 中,实现“Row Number Over Partition By”的功能“功能需要另一种方法。一种方法是对相关表执行不等自连接。
示例:
考虑下表,[MyData]:
Ino | TYPE | DOC |
---|---|---|
1 | 1800xxc1 | 3a |
2 | 1810xxc2 | 3b |
3 | 1700xxc3 | 3c |
4 | 1700xxc4 | 3a |
5 | 1800xxc5 | 3a |
6 | 1800xxc6 | 3a |
7 | 1800xxc7 | 3b |
为了模仿本例中的“Row Number Over Partition By”函数,我们可以使用以下代码查询:
SELECT t1.DOC, t1.TYPE, COUNT(*) AS [Ino Seq] FROM MyData AS t1 INNER JOIN MyData AS t2 ON t2.DOC = t1.DOC AND t2.Ino <= t1.Ino GROUP BY t1.DOC, t1.TYPE ORDER BY 1, 3
此查询检索 [DOC] 列定义的每个分区内每行的序列号。输出将类似于:
DOC | TYPE | Ino Seq |
---|---|---|
3a | 1800xxc1 | 1 |
3a | 1700xxc4 | 2 |
3a | 1800xxc5 | 3 |
3a | 1800xxc6 | 4 |
3b | 1810xxc2 | 1 |
3b | 1800xxc7 | 2 |
3c | 1700xxc3 | 1 |
以上是如何在 MS Access 中复制 SQL 的'ROW_NUMBER() OVER (PARTITION BY ...)”?的详细内容。更多信息请关注PHP中文网其他相关文章!