Вашето запитване е добре. Причината да получавате 2000 реда е, че получавате един ред за всяка уникална двойка стойности user_id
, item_id
.
Ако искате да видите типовете взаимодействия, влизащи във всеки ред, използвайте:
select user_id, item_id, max(interaction_type) as max_type,
group_concat(distinct interaction_type) as interaction_types,
count(*) as cnt
from mytable
group by user_id, item_id;
Хрумва ми, че искате всички редове с максимален тип взаимодействие. Ако е така, изчислете максимума и след това намерете всички редове, които отговарят на тази стойност:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
Няма group by
е необходимо за тази заявка.