次の構造のテーブルがあります(アイデアを示すための単純化されたバージョンです):
name | city
------------------
John | New York
Thomas | Berlin
Hans | Berlin
Boris | Moscow
Boris | Moscow
Vasiliy | Moscow
group by
次のように、すべての都市の合計人数を取得するために 使用できます。
select count(*) from my_table group by city
しかし、私はもう少し必要であり、頭を包むことができます.同じ都市にいる同じ名前を持つすべての人々の数を取得すると同時に、その都市にいる人の総数を維持する必要があります. 結果は次のようになります。
name | totalWithThisName | totalInThisCity | city
--------------------------------------------------------
John | 1 | 1 | New York
Thomas | 1 | 2 | Berlin
Hans | 1 | 2 | Berlin
Boris | 2 | 3 | Moscow
Vasiliy | 1 | 3 | Moscow
db から生データを取得し、Java プログラムで計算できることはわかっていますが、単純な SQL で計算するのは素晴らしいことです。
更新:私は使用していますが、句mysql
を使用できません。over