如何找到与其他列有错误条目的唯一列

14ifxucb  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(264)

我在mysql中有表“rec”,比如

ID TPI   ROLE   percent
1  10   ADMIN    80
2  20   USER     20
3  10   USER     90
4  20   USER     60

所有的tpi都可以是admin或user,但两个角色中都设置了tpi10。如何在表中找到同时具有这两个角色的tpi。它只是一个虚表,在实表中我有1000个数据。
我在尝试类似的东西

SELECT DISTINCT TPI,ROLE  FROM `rec` GROUP BY TPI HAVING(COUNT(TPI)) > 1

但我没有得到欲望的输出

fd3cxomn

fd3cxomn1#

如果您只想找到具有多个角色的用户,那么我们可以尝试聚合:

SELECT TPI
FROM rec
GROUP BY TPI
HAVING MIN(ROLE) <> MAX(ROLE);

演示

当前查询的主要问题是您正在选择 ROLE 仅按聚合 TPI . 这没有任何意义。也, HAVING 不是sql中的函数,它是运算符,所以后面不带括号。

hivapdat

hivapdat2#

您可以使用下面的查询得到相同的结果。

SELECT TPI  FROM `rec` GROUP BY TPI HAVING(count(distinct ROLE)>1);
fdbelqdn

fdbelqdn3#

你可以检查一下这个角色

select tpi, count(distinct ROLE)
from  `rec` 
GROUP BY tpi  HAVING count(distinct ROLE)  > 1

或角色

select tpi, count( ROLE)
from  `rec` 
GROUP BY tpi  HAVING count( ROLE)  > 1

相关问题