次の表があります。
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
問題は、国に基づいてグループ化されたテーブル レベル (現在のクエリは個別の値をカウントしますが、グループ レベル) で個別にクエリを実行するにはどうすればよいですか?