JOIN
、COUNT(*)
、およびGROUP BY
を使用して非常に単純なクエリを実行する正しい方法を理解しようとしています。私は実際にそれを機能させました(以下を参照)が、私が読んだことから、私はGROUP BY
すべきではない余分なものを使用しています.
(注: 以下の問題は、(より複雑なテーブルを扱う) 私の実際の問題ではありませんが、類似の問題を考え出そうとしました)
私は2つのテーブルを持っています:
Table: Person
-------------
key name cityKey
1 Alice 1
2 Bob 2
3 Charles 2
4 David 1
Table: City
-------------
key name
1 Albany
2 Berkeley
3 Chico
WHERE
返される People (いくつかの句を含む) に対してクエリを実行したい
- 各都市の一致人数
- 街の鍵
- 都市の名前。
私が行った場合
SELECT COUNT(Person.key) AS count, City.key AS cityKey, City.name AS cityName
FROM Person
LEFT JOIN City ON Person.cityKey = City.key
GROUP BY Person.cityKey, City.name
欲しい結果が得られる
count cityKey cityName
2 1 Albany
2 2 Berkeley
ただし、句の最後の部分( ) を挿入して動作させるのは間違っていると 読みました。GROUP BY
City.name
それで、これを行う正しい方法は何ですか?私は答えをグーグルで検索しようとしていますが、私が得ていない基本的な何かがあるように感じます.