SQLite选择count大于1的所有记录

时间:2016-04-12 13:08:35

标签: sqlite

这是我的架构:

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所有记录的查询。提前感谢所有的帮助。

1 个答案:

答案 0 :(得分:4)

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