【发布时间】:2012-12-20 19:28:44
【问题描述】:
我有下表:
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 都属于 UK,但 ccc 在表级别中没有不同的编号(与与 name 关联的 number 重复aaa,但 aaa 在另一个国家/地区)。
问题是:如何在表级别查询不同的numbers(当前查询计算不同的值,但在组级别)根据他们的国家分组?
【问题讨论】:
-
美国还是英国应该计入哪个国家/地区的 111?
标签: mysql