0

私のテーブルは次のようなものです。

_id時間名はNotFirstEntryです
1 55555 aaa 0
2 66666 1
3 77777 1
4 88888 bbb 0
5 99998 4
6 99999 4

つまり、重複エントリの場合、nameはnullであり_id、元のエントリのはisNotFirstEntryに格納されます。

_id、time、name、noを取得したい。重複するエントリのnとしての名前!= null

私はこのようなことを試みました: select _id, time, name, (select count(isNotFirstEntry) from mytable where isNotFirstEntry=_id) as n from mytable where name!=null

もちろん、それは機能しません。ネストされたクエリの_idは、外側の部分の_idと同じではありません。ネストされたクエリから外側の部分の_idにアクセスする必要があります。

私はandroidsdkを使用しているので、sqliteのみを使用できます。

4

1 に答える 1

2

参加する必要があります。これは、相関サブクエリとして実行できます。

select mt._id, mt.time, mt.name,
       (select count(mt2.isNotFirstEntry)
        from mytable mt2
        where mt2.isNotFirstEntry=mt._id
       ) as n
from mytable mt
where mt.name!=null

または、groupbyとの明示的な結合として:

select mt._id, mt.time, mt.name, count(mt2._id) as n
from mytable mt left outer join
     mytable mt2
     on mt._id = mt2.isNotFirstEntry
where mt.name is not null
group by mt._id, mt.time, mt.name
于 2012-08-11T19:18:05.727 に答える