0

id、ip、user_id の 3 つの行を持つテーブルをクエリする必要があります。

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データベースを使用しています。

4

2 に答える 2

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;
于 2012-09-26T11:47:58.927 に答える
1
select min(id),ip from table
group by ip,user_id
于 2012-09-26T11:52:11.163 に答える