MYSQL - 从结果中选择唯一的结果

时间:2018-04-05 14:43:35

标签: mysql sql

我正在尝试从我们的数据库中获取这些国家/地区中唯一的国家/地区和学生数量。我过去曾经破解过它,但不记得我做了什么。

我知道它是这样的:

select COUNT(country) as T 
from (select country 
      from rs_user 
      where Email in (
                 select distinct(Email) 
                   from rs_active_course))

我希望结果是这样的:

------------
| GB | 8 |
| ZA | 8 |
|美国| 8 |
| RU | 8 |
| PN | 8 |
------------

我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试下面的查询,虽然我不知道你的架构如果你的子查询是正确的,这应该可行:

SELECT COUNT(country), country as T 
FROM (SELECT country 
      FROM rs_user 
      WHERE Email in (SELECT distinct(Email) 
                      FROM rs_active_course))
GROUP BY country

答案 1 :(得分:0)

我在这里对你的数据库结构做了一些假设,但也许这可能是你想要的?

SELECT COUNT(DISTINCT r.Email), 
       r.country as T
FROM rs_user as r, rs_active_course as rc
WHERE r.Email = rc.Email
GROUP BY T