1

「タイトル」、「アーティスト」、「ランキング」の 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);

関連する質問を見てきましたが、このシナリオに適用する方法を見つけることができませんでした.これを達成する方法についての指示をいただければ幸いです.

4

0 に答える 0