我有sql表:
id user city
1 Alisa New York
2 Alisa Sydney
3 Alisa Rom
4 Alisa Toronto
5 Bob Rom
6 Bob Moskow
7 Bob Sydney
8 Tom Sydney
例如,我需要了解有多少个相同城市有 Bob 的其他用户。
SELECT user, count(DISTINCT city) FROM table WHERE city IN (
SELECT city FROM table WHERE user = 'Bob'
) AND user != 'Bob' GROUP BY user
结果是:
user count(DISTINCT city)
Alisa 2
Tom 1
您知道提出此请求的其他最佳方式吗? 大 table 可以吗?
最佳答案
这个怎么样:
SELECT A.user,
count(DISTINCT A.city)
FROM table A,
(SELECT city FROM table WHERE user = 'Bob') B
WHERE A.city = B.city
AND A.user != 'Bob'
GROUP BY A.user
关于mysql - 如何在 SQL 中搜索并获取大表的计数(where-in),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20403547/