尝试对分组进行计数,但仅返回大于 1

Trying to count a grouping and only return greater than 1

提问人:Marc A 提问时间:8/4/2023 最后编辑:Scott HunterMarc A 更新时间:8/4/2023 访问量:41

问:

我想编写一个SQL语句,但遇到了麻烦。

假设我有一个包含以下数据的表:

同上 知识产权
1 1
1 1
1 1
2 1
2 1
3 2
3 2
4 2
4 2
4 2
5 3
5 3
6 4
6 4
7 4
7 4

我希望我在此表上的查询结果为:

同上 知识产权
1 1
2 1
3 2
4 2
6 4
7 4

如您所见,它省略了 5 3 数据,因为它没有多个具有相同 ip 的 id。有没有需要做的嵌套?

对不起,尝试过:

select distinct poster_id, poster_ip from
`phpbbkp_posts` where poster_id in
(select poster_id 
from
(select distinct poster_id, poster_ip from `phpbbkp_posts`) p  
group by poster_id 
having count(*) > 1)
order by poster_id

没用。

sql 选择 拥有

评论

0赞 Eric 8/4/2023
请在此处学习如何提问。stackoverflow.com/help/how-to-ask
0赞 Eric 8/4/2023
另外,你有没有尝试过什么???SO 不是一个免费的编码服务网站。你应该做你的工作。如果它不起作用,我们可以提供帮助。
0赞 Marc A 8/4/2023
对不起,新手,正在学习如何发帖。我已经纠正了。
2赞 Scott Hunter 8/4/2023
你能比“没用”更具体吗?
0赞 Marc A 8/4/2023
是的,它给了我 5 3 部分。它不会查看 count 语句,并将其与单个 ip 的 id 大于 1 的分组相关联。

答:

0赞 Cristian 8/4/2023 #1

这对我有用,只是我计算的一点反向逻辑

    SELECT poster_id, poster_ip FROM `phpbbkp_posts`
    WHERE  poster_ip 
    IN(
    SELECT   poster_ip 
    FROM (
    SELECT DISTINCT poster_id, poster_ip FROM `phpbbkp_posts`
    ) AS P
    GROUP BY poster_ip
    HAVING COUNT(poster_id) > 1

    )