这是我的架构:
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
所有记录的查询。提前感谢所有的帮助。
答案 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