2016-04-12 8 views
1

これは私のスキーマです:私はevent_typeが複数回登録されたすべてのレコードを表示したいと思いはカウントがされているすべてのレコードを選択するSQLiteの1より大きい

create table events(
event_type integer not null, 
value integer not null, 
time timestamp not null, 
unique (event_type ,time) 
); 

insert into events values 
(2, 5, '2015-05-09 12:42:00'), 
(4, -42, '2015-05-09 13:19:57'), 
(2, 2, '2015-05-09 14:48:39'), 
(2, 7, '2015-05-09 13:54:39'), 
(3, 16, '2015-05-09 13:19:57'), 
(3, 20, '2015-05-09 15:01:09') 

。スキーマでわかるように、event_type 2 and 3が複数回出現します。私はevent_type 2 and 3ですべてのレコードを表示していましたクエリを見たい

select event_type, value, time from events 
group by event_type 
having count(event_type) > 1; 

次はevent_type 2 and 3のために1つのレコードのみを選択する私が使用しているクエリです。すべての助けを前もって感謝します。

答えて

3
select e.event_type, e.value, e.time 
    from events e 
    join (select event_type 
      from events 
      group by event_type 
     having count(*) > 1) b 
    on e.event_type = b.event_type; 

私にとっては、これが返されます。

2|5|2015-05-09 12:42:00 
2|7|2015-05-09 13:54:39 
2|2|2015-05-09 14:48:39 
3|16|2015-05-09 13:19:57 
3|20|2015-05-09 15:01:09 

参考:Show all duplicated rows

関連する問題