2016-04-12 50 views
1

這是我的架構: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已經註冊一次以上的記錄。正如您在架構中看到的,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顯示所有記錄的查詢。預先感謝所有的幫助。

回答

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

相關問題