sqlite - dense_rank 和 sqlite - 可能吗?

标签 sqlite

我的情况是我有一个非常小的 PostgresSQL 数据库(大约 10 个表,其中最大的有几千行),我想以单用户方式使用它应用程序,因此不得不安装整个服务器感觉不必要的繁重。所以,我想,好吧,SQLite 听起来很合适。

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

那么,有人知道有什么方法可以使 dense_rank 函数在 SQLite 数据库内的 View 中可用吗?是否有我可以使用的另一个库?

最佳答案

您可以使用子查询模拟 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;

关于sqlite - dense_rank 和 sqlite - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18816626/

相关文章:

c# - 如何为 SQLite 创建身份服务器数据库?

java - 查询已存在的数据库返回空游标

java - 如何将 SQLite 与 Java 连接起来?

ios - 查询优化或缓冲

iphone - iOS 数据存储 - MAMP

java - Android Sqlite 一个数据库中的多个表

ios - 从网络服务器接收更新到 iOS App 并同步数据

android - SQLite和密码加密、解密和上传

android - 创建带有更新的新闻应用程序 android

android sqlite 独特的插入