「タイトル」、「アーティスト」、「ランキング」の 3 つの列を持つ SQL テーブル「曲」があるとします。
track | artist | ranking
---------+--------+---------
A | A1 | 3
B | A1 | 2
C | A1 | 1
D | A2 | 4
E | A3 | 7
F | A3 | 6
G | A3 | 5
ランキング順で各アーティストの最初の N 行 (たとえば 2 行) だけを返す SELECT クエリを作成したいと考えています。アーティスト列で GroupBy を使用すると、各アーティストの 1 行が返されることは承知していますが、このシナリオでは次のように 2 行が必要です。
track | artist | ranking
---------+--------+---------
A | A1 | 1
B | A1 | 2
D | A2 | 4
E | A3 | 5
F | A3 | 6
可能であれば、queryBuilder を使用して Android 内でこれを構築することをお勧めします。これは、取得できた限り近いものです。
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qBuilder = new SQLiteQueryBuilder();
String[] sqlSelect = {"title", "artist", "ranking"};
String sqlTable = "songs";
String orderBy = "ranking DESC";
qBuilder.setTables(sqlTable);
cur = qBuilder.query(db, sqlSelect, null, null, null, null, orderBy);
関連する質問を見てきましたが、このシナリオに適用する方法を見つけることができませんでした.これを達成する方法についての指示をいただければ幸いです.