首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索distinct表但返回所有列

搜索distinct表但返回所有列
EN

Stack Overflow用户
提问于 2012-09-26 19:42:30
回答 2查看 55关注 0票数 0

我需要查询一个包含3行的表: id、ip和user_id

我只想返回具有唯一值ip和user_id的行(本身不是唯一的,而是成对唯一的),例如:

代码语言:javascript
复制
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

结果必须是:

代码语言:javascript
复制
id        ip
------------
1         1
4         2
2         8
6         2
8         3
9         3

我使用的是Oracle数据库。

EN

回答 2

Stack Overflow用户

发布于 2012-09-26 19:47:59

代码语言:javascript
复制
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;

或者:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2012-09-26 19:52:11

代码语言:javascript
复制
select min(id),ip from table
group by ip,user_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12600953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档