sql count(*) 查询另一个执行多个结果的查询的结果
Posted
技术标签:
【中文标题】sql count(*) 查询另一个执行多个结果的查询的结果【英文标题】:sql count(*) query on results of another query performing multiple results 【发布时间】:2018-10-17 23:36:09 【问题描述】:如何对执行多个结果的另一个查询的结果执行 sql count(*) 查询?
我有 3 张桌子:--
user_subscribe 表,其中我有 'user_id' 和其他列。
我们有“user_id”和“country_id”列的用户表,其中 user_id 与 user_subscribe 表相关联,而 country_id 与“country”表相关联。
-
包含“country_id”列的国家/地区表。
我需要根据属于同一国家/地区的用户 (user_id) 获取 user_subscribe 的总数。 非常感谢您的帮助,因为我在过去 7 天里一直被困在这个问题上。
【问题讨论】:
**sql count() 查询另一个返回多个结果的查询的结果 【参考方案1】:SELECT COUNT(US.user_id) as country_user_subscribed
FROM user_subscribe as US
LEFT JOIN users as U ON user.id=US.user_id
LEFT JOIN countries as C on C.id=U.country_id
GROUP BY C.country_id
【讨论】:
【参考方案2】:试试这个解决方案:
SELECT C.CountryName,Count(u.UserId) AS UserCount FROM User_Subscribe AS us
LEFT JOIN User AS u ON us.UserId = u.UserId
LEFT JOIN Country AS c ON u.CountryId = c.CountryId
WHERE c.CountryId = 3
GROUP BY c.CountryName
【讨论】:
添加我正在更新查询的条件 您好 Kavel 非常感谢您的回复,您的查询工作正常,没有任何问题。但是,问题仍然存在,因为我需要根据我已经拥有的 country_id 找到结果。例如,印度的 country_id = 3 所以我需要根据属于 country_id=3(印度)的 'user_id' 从 'user_subscribe' 表中找出总订阅者。 请立即检查查询,如果有效,请接受并投票回答,这样也有助于其他人 感谢 Kavel,它对我们来说非常完美,但是我并不认为按照我们的要求“分组依据”是必要的。无论如何都为你喝彩。 :)以上是关于sql count(*) 查询另一个执行多个结果的查询的结果的主要内容,如果未能解决你的问题,请参考以下文章
MySQL Execution Plan--COUNT相关测试
初学者 SQL 问题:具有多个 COUNT(*) 结果的算术