2015-05-22 43 views
0

SQL中的新增内容对我而言看起来很难。例如,我有一个两列的表。如何选择子集中至少有两个相同值的所有行

page_session_id, event_name 

让说我要选在有至少两个EVENT_NAME =“开始”一样page_session_id

+0

你能分享一些范例数据找到你期望的结果? – Mureinik

+0

google-了解SQL Server中的“GROUP BY”,“HAVING”和“COUNT”函数。他们都是你需要解决的问题。 –

回答

1

一种方式与具有:

select 
    page_session_id, event_name 
from tbl 
where event_name = 'started' 
group by page_session_id, event_name 
having count(*) >= 2 
1

内如果有多个行,并希望得到所有从该列的所有行表,你可以使用这个

;with cte as (
    select 
     *, 
     count(*) over(partition by page_session_id) as cnt 
    from <table> 
    where event_name = 'started' 
) 
select * 
from cte 
where cnt > 1 
相关问题