2

次の列を持つテーブルがあります

_id INTEGER PRIMARY KEY,
body TEXT,
category TEXT,
is_readed INTEGER,
date INTEGER

私はレコードを例に見てもらいます

私は次のクエリを持っています

SELECT
    _id, body, category, is_readed
FROM 
    table
GROUP BY
    category
ORDER BY
    category, is_readed, date DESC

(is_readed が 0 か 1 かに関係なく) カテゴリの最初のレコードのみを表示したいが、最初に (存在する場合) を含むレコードを表示したいis_readed == 1is_readed == 0ただし、最初のレコードが存在する場合でも、最初のレコードを表示することがありますis_readed == 1

:生のクエリではなく ContentProvider を使用しています

アップデート

この大まかな作業でしばらく試した後

SELECT
    _id, body, category, MIN(is_readed) as is_readed
FROM 
    table
GROUP BY
    category
ORDER BY
    category, date DESC

私はまだテストを行っていますが、まだ確信が持てません

SELECT * FROM table ORDER BY category, is_readed ASC, date DESC;

_id|category|body|is_readed|date
19|Hogar|message1|1|1371449889136
16|Hogar|message2|1|1371449806704
15|Hogar|message2|1|1371449803825
11|Hogar|message3|1|1371448915930
5|Hogar|message4|1|1371447395055
4|Hogar|message4|1|1371447391394
23|Linea blanca|message2|0|1371450430216
26|Linea blanca|message1|1|1371450719124
24|Linea blanca|message4|1|1371450431604
21|Linea blanca|message1|1|1371449893835
20|Linea blanca|message1|1|1371449891488
17|Linea blanca|message3|1|1371449810104
13|Linea blanca|message3|1|1371448994173
12|Linea blanca|message2|1|1371448917864
6|Linea blanca|message4|1|1371447397387
22|Vehiculos|message3|0|1371450428817
14|Vehiculos|message3|0|1371449801144
25|Vehiculos|message4|1|1371450717115
18|Vehiculos|message4|1|1371449887682
10|Vehiculos|message1|1|1371448422563
9|Vehiculos|message4|1|1371448419438
8|Vehiculos|message3|1|1371448416315
7|Vehiculos|message4|1|1371448395644
3|Vehiculos|message3|1|1371447388887
2|Vehiculos|message1|1|1371447386126
1|Vehiculos|message2|1|1371447383557

私のアップデート

SELECT
    _id, body, category, MIN(is_readed) as is_readed
FROM 
    table
GROUP BY
    category
ORDER BY
    category, date DESC

_id|category|body|is_readed|date
4|Hogar|message4|1|1371447391394
23|Linea blanca|message2|0|1371450430216
14|Vehiculos|message3|0|1371449801144

@ホアン・グエンの答え

4|Hogar|message4|1|1371447391394
6|Linea blanca|message4|1|1371447397387
1|Vehiculos|message2|1|1371447383557

期待される結果

19|Hogar|message1|1|1371449889136
23|Linea blanca|message2|0|1371450430216
22|Vehiculos|message3|0|1371450428817
4

2 に答える 2

0

ContentProvider とサブクエリに生のクエリを実装する必要がありましたが、サブクエリなしで実行できると思います

SELECT
    _id, body, category, is_readed, date
FROM
(
    SELECT
        _id, body, category, is_readed, date
    FROM 
        table
    GROUP BY
        is_readed, category
    ORDER BY
        category ASC, is_readed DESC, date DESC
)
GROUP BY
    category
于 2013-06-17T14:48:04.247 に答える
-1
SELECT
    _id, body, category, is_readed
FROM 
    table
GROUP BY
    category
HAVING 
    max (is_readed)
ORDER BY
    category, is_readed, date DESC
于 2013-06-17T07:29:08.610 に答える