Je vraag is goed. De reden dat u 2000 rijen krijgt, is omdat u één rij krijgt voor elk uniek paar waarden user_id
, item_id
.
Als u de interactietypes in elke rij wilt zien, gebruik dan:
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;
Het komt me voor dat je alle rijen wilt met het maximale interactietype. Zo ja, bereken dan het maximum en zoek vervolgens alle rijen die overeenkomen met die waarde:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
Geen group by
is nodig voor deze zoekopdracht.