2012-09-26 32 views
0

我需要查詢一個表,3行:ID,IP和user_id說明搜索器不同的表,但返回的所有列

我只想返回具有IP和user_ID的(本身不是唯一的唯一值的行,但唯一一對),例如:

id   ip   user_id 
-------------------------------- 
1   1   2 
2   1   2 
3   1   2 
4   2   5 
5   2   5 
6   2   8 
7   2   8 
8   3   10 
9   3   11 

其結果必然是:

id  ip 
------------ 
1   1 
4   2 
2   8 
6   2 
8   3 
9   3 

我使用Oracle數據庫。

+0

你的意思是某事。像那樣:'SELECT distinct id,ip FROM your_table'? – WojtusJ

+0

如果您有多行,您想要哪一行,只是遇到了第一行? – bendataclear

回答

1
select id, ip 
from the_table 
    join (
    select min(id) as min_id 
    from the_table 
    group by ip, user_id 
) t on t.min_id = the_table.id 
order by id; 

或:

select id, ip 
from (
    select id, 
      ip, 
      row_number() over (partition by ip_user_id order by id) as rn 
    from the_table 
) t 
where rn = 1 
order by id; 
1
select min(id),ip from table 
group by ip,user_id 
+0

這真是一個不錯的選擇! –

+0

謝謝。這很棒。 – aaljovic

相關問題