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(*) 结果的算术

尝试使用DBeaver同时执行多个查询时,无法与Ignite群集通信

在另一个查询中执行 SQL 查询作为结果

将两条sql的查询结果拼接在一起显示

SQL 在查询结果中替换另一个表中的多个变量