Sql 如何选择子集中至少有两个相同值的所有行
SQL的新特性对我来说很难。例如,我有一个有两列的表Sql 如何选择子集中至少有两个相同值的所有行,sql,sql-server,Sql,Sql Server,SQL的新特性对我来说很难。例如,我有一个有两列的表 page_session_id, event_name 假设我要选择在同一页面中至少有两个事件\u name='started'的所有行\u session\u id如果您有多行,并且希望从表中获取所有列,则可以使用此选项 ;with cte as ( select *, count(*) over(partition by page_session_id) as cnt from <table
page_session_id, event_name
假设我要选择在同一页面中至少有两个事件\u name='started'的所有行\u session\u id如果您有多行,并且希望从表中获取所有列,则可以使用此选项
;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
一种方法是:
select
page_session_id, event_name
from tbl
where event_name = 'started'
group by page_session_id, event_name
having count(*) >= 2
你能分享一些样本数据和你期望从中得到的结果吗?谷歌通过在SQL Server中使用和计算函数来了解GROUP BY。它们是你解决问题所需要的全部。