Din forespørgsel er fin. Grunden til at du får 2000 rækker er fordi du får én række for hvert unikt værdipar user_id
, item_id
.
Hvis du vil se de interaktionstyper, der går ind i hver række, skal du bruge:
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 går op for mig, at du vil have alle rækker med den maksimale interaktionstype. Hvis ja, beregn maksimum og find derefter alle rækker, der matcher denne værdi:
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
er nødvendig for denne forespørgsel.