Din fråga är bra. Anledningen till att du får 2000 rader är att du får en rad för varje unikt värdepar user_id
, item_id
.
Om du vill se interaktionstyperna för varje rad, använd:
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;
Det slår mig att du vill ha alla rader med den maximala interaktionstypen. Om så är fallet, beräkna maxvärdet och hitta sedan alla rader som matchar det värdet:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
Ingen group by
behövs för den här frågan.