コンピュータユーザー:
MySQLで:
私は、重複した値を持つテーブル内の都市を持っています。
表都市:
Name
New York, USA
New York, USA
Chicago, USA
Chicago, USA
Chicago, USA
Paris, France
Nice, France
Milan, Italy
この表のデータの形式は次のとおりです。
<city>, <country>
と同じ:
<city><comma><space><country>
表国:
Name
USA
France
Italy
私は、それぞれの国が持っているどのように多くの都市を取得したいです。お気に入り:
Country Count
USA 2
France 2
Italy 1
だから、私は2つのクエリを持っています:
SELECT count(*) FROM `Cities` WHERE Cities.name LIKE '%, USA%'
しかし、この値はUSA
から来る必要があります。
SELECT * FROM `country`
さて、どのように私は、目的のテーブルを得るのですか?
離れて渡します:
とLEFT JOIN
:
select t1.name Country, count(distinct t2.name) Count
from country t1 left join cities t2
on t2.name like concat('%, ', t1.name)
group by t1.name
参照のデモを。
結果:
| Country | Count |
| ------- | ----- |
| France | 2 |
| Italy | 1 |
| USA | 2 |