Váš dotaz je v pořádku. Důvod, proč získáváte 2000 řádků, je ten, že získáváte jeden řádek pro každý jedinečný pár hodnot user_id
, item_id
.
Chcete-li vidět typy interakcí, které jsou součástí každého řádku, použijte:
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;
Přijde mi, že chcete všechny řádky s typem maximální interakce. Pokud ano, vypočítejte maximum a poté najděte všechny řádky, které odpovídají této hodnotě:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
Žádné group by
je pro tento dotaz potřeba.