1

我的情况是我有一个PostgresSQL很小的数据库(大约 10 个表,其中最大的是几千行),我想从单用户样式的应用程序中使用它,因此必须安装整个服务器感觉不必要地繁重. 所以,我想,SQLite听起来这只是门票。

我移植了架构,导入了数据,然后我陷入了一个视图(实际上,它拥有的唯一视图)。我的问题是我正在使用非常方便的dense_rank功能。我读到这个:sqlite - Unsupported Sql Analytical Functions并且可以看到它不可用,但它提示我它可能在SQLite::More但它似乎也不在那里。

那么,有谁知道我可以通过什么方式让该dense_rank函数在 SQLite 数据库内的视图中可用?是否有另一个我可以使用的库?

4

2 回答 2

6

DENSE_RANK您可以使用子查询模拟函数:

例子:

SELECT Products.Product,
DENSE_RANK() OVER (ORDER BY Products.Code DESC) AS Rank
FROM Products;

在 SQLite 中:

SELECT Product,
(SELECT COUNT()+1 FROM (
    SELECT DISTINCT Code FROM Products AS t WHERE Code < Products.Code)
) AS Rank
FROM Products;
于 2013-09-15T21:51:22.750 回答
0

2018 年更新:如果您查看 sqlite 版本历史记录,则从 3.25 版开始支持dense_rank(以及其他窗口函数)。

https://www.sqlite.org/changes.html

于 2018-12-17T17:40:59.743 回答