La tua domanda va bene. Il motivo per cui ottieni 2000 righe è perché ottieni una riga per ogni coppia univoca di valori user_id
, item_id
.
Se vuoi vedere i tipi di interazione che entrano in ogni riga, usa:
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;
Mi viene in mente che vuoi tutte le righe con il tipo di interazione massimo. In tal caso, calcola il massimo e trova tutte le righe che corrispondono a quel valore:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
Nessun group by
è necessario per questa query.