次のようなテーブルがあるとしましょう。
Id*|value
それぞれについてId
、対応するものが何回value
存在するかを数えたいと思います。このサンプル データのように:
1, a
2, b
3, a
4, b
5, c
6, a
私が欲しい:
1, a, 3
2, b, 2
3, a, 3
4, b, 2
5, c, 1
6, a, 3
これは私が今持っているもので、機能していると思いますが、非常に遅いです:
SELECT t1.Id, t1.value, COUNT(t2.value) FROM `table` AS t1
LEFT JOIN `table` AS t2 ON (t1.value = t2.value)
GROUP by t1.Id
私のテーブルには何千もの行が含まれています。このパフォーマンスの悪徳を改善する方法について何か提案はありますか?