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

Update 2018: sqlite のバージョン履歴を見ると、dense_rank (他のウィンドウ関数の中でも) はバージョン 3.25 でサポートされています。

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

于 2018-12-17T17:40:59.743 に答える