SQL的新功能对我来说很难。例如,我有一个包含两列的表。
page_session_id, event_name
假设我想选择至少有两个event_name ='已启动的所有行。在同一个page_session_id
中答案 0 :(得分: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
答案 1 :(得分:1)
HAVING的一种方式:
select
page_session_id, event_name
from tbl
where event_name = 'started'
group by page_session_id, event_name
having count(*) >= 2