我有下表:
name | number
--------------
aaa | 111
aaa | 555
bbb | 222
ccc | 111
ddd | 333
eee | 444
以及以下内容:
name | country
---------------
aaa | US
bbb | UK
ccc | UK
ddd | DE
eee | UK
我需要选择不同数字的数量(在整个表级别上不同),并根据他们的国家对这些不同的值进行分组。
我使用了以下查询:
SELECT count(distinct t1.number), t2.country
FROM db.t1
JOIN db.t2
ON t1.name=t2.name
GROUP BY t2.country;
我得到的结果是:
3 | UK
2 | US
1 | DE
如第一个表所示,我只有 5 个不同的数字。但是在查询之后,我得到了 6 个不同的数字。这是因为名称: bbb
, ccc
,eee
都属于英国,但ccc
在表级别中没有不同的数字(与number
关联的重复name
aaa
,但aaa
在另一个国家/地区)。
问题是:如何numbers
在表级别查询不同的值(当前查询计算不同的值,但在组级别)根据他们的国家分组?