Está bien tu consulta. La razón por la que obtiene 2000 filas es porque obtiene una fila por cada par único de valores user_id
, item_id
.
Si desea ver los tipos de interacción que van en cada fila, utilice:
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;
Se me ocurre que quieres todas las filas con el tipo de interacción máximo. Si es así, calcule el máximo y luego busque todas las filas que coincidan con ese valor:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
Sin group by
es necesario para esta consulta.