oracle – 如何查找具有相同(某些x值)值的列重复多次?需要返回
发布时间:2021-05-16 07:45:23 所属栏目:站长百科 来源:网络整理
导读:有一个名为联系人的表,其中包含列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等.
例如: 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 ; (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |