我想根据特定人的最小记录数(N)从单个表中选择记录。例如,如果N = 2,那么
Name Time
John 09:00:00
Sam 09:05:00
Sally 09:06:00
John 09:10:00
Jane 09:15:00
Joe 09:16:00
Sally 09:22:00
过滤到
Name Time
John 09:00:00
Sally 09:06:00
John 09:10:00
Sally 09:22:00
记录计数很容易,但如何选择呢?
答案 0 :(得分:0)
按功能分组使用。
select count(*),Name from table_name group by Name
答案 1 :(得分:0)
试试这个:
select *
from mytable
where name in (
select name
from mytable
group by name
having count(1) =2
)
答案 2 :(得分:0)
您首先会按特定人员出现的次数对记录进行分组:
select count(1), name
from Person
group by name;
接下来,您要选择出现两次或更多次的人:
select name, time
from Person
where id in (
select id from Person group by name having count(1) >= 2
)
请注意,我假设您的Person
表格中有id
列,该列唯一标识每一列。
因此,基本上,您首先选择出现两次或更多次的人的id
,然后为这些人选择所需的数据。