У меня есть следующие данные:
| user_id | item_id |
|---------+---------|
| 3 | 2 |
| 3 | 11 |
| 4 | 1 |
| 4 | 2 |
| 4 | 55 |
| 4 | 3 |
| 5 | 9 |
, где item_id
отличается в том же user_id
, но может дублироваться (см. user_id
= 3 и user_id
= 4 имеют оба item_id
= 2). То, что я хочу сделать, состоит в том, чтобы объединить эти столбцы как «количество строк item_id
на user_id
), которое будет выглядеть так:
| user_id | count(`item_id`) |
|---------+------------------|
| 3 | 2 |
| 4 | 4 |
| 5 | 1 |
В настоящее время я наивно делаю это с помощью внешней логики, которая выполняет SELECT COUNT(item_id) WHERE user_id='${user_id}'
на каждом user_id
с. Как вы и ожидали, это будет ухудшаться при увеличении user_id
.
Как я могу написать один SQL-запрос для достижения этой цели? Пожалуйста, помогите мне. Заранее спасибо.