加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 怎样查找具有沟通(某些x值)值的列一再多次?必要返回

发布时间:2021-05-17 03:53:50 所属栏目:站长百科 来源:网络整理
导读:有一个名为接洽人的表,个中包括列id,名称,地点,ph_no等. 我必要查找具有沟通名称的行,假如行数大于1,则表现这些行. 譬喻: 表:接洽人 id--------name--------address---------ph_no--------111 apple U.K 99*******112 banana U.S 99*******123 grape INDIA

有一个名为接洽人的表,个中包括列id,名称,地点,ph_no等.
我必要查找具有沟通名称的行,假如行数大于1,则表现这些行.

譬喻:
表:接洽人

id--------name--------address---------ph_no--------
111       apple       U.K             99*******
112       banana      U.S             99*******
123       grape       INDIA           99*******
143       orange      S.AFRICA        99*******
152       grape       KENYA           99*******

对付上面的表,我必要得到具有沟通列名数据的行,如下所示:

id--------name--------address---------ph_no--------
123       grape       INDIA           99*******
152       grape       KENYA           99*******

我必要按照我给出的名称来获取行,如下面的示例语法:

select * from contacts where name='grape' and it's count(*) >1 return those rows.

怎样实现上述题目的办理方案.

正如@ vc74所体现的那样,说明函数在这里事变得更好;出格是假如您的数据有任何数目.
select id,name,address,ph_no ...
  from ( select c.*,count(name) over ( partition by name ) as name_ct
           from contacts c )
 where name_ct > 1
       ;

编辑

限定特命名称表接洽人应该在名称上有一个索引,查询将如下所示:

select id,count(name) over ( partition by name ) as name_ct
           from contacts c
          where name = 'grape' )
 where name_ct > 1
       ;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读