आपकी क्वेरी ठीक है। आपको 2000 पंक्तियाँ प्राप्त करने का कारण यह है कि आपको प्रत्येक अद्वितीय जोड़ी मानों के लिए एक पंक्ति मिल रही है user_id
, item_id
।
यदि आप प्रत्येक पंक्ति में होने वाले इंटरैक्शन प्रकारों को देखना चाहते हैं तो इसका उपयोग करें:
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;
मेरे साथ ऐसा होता है कि आप सभी पंक्तियों को अधिकतम इंटरैक्शन प्रकार के साथ चाहते हैं। यदि ऐसा है, तो अधिकतम की गणना करें और फिर उस मान से मेल खाने वाली सभी पंक्तियाँ खोजें:
select t.*
from mytable t cross join
(select max(interaction_type) as maxit from mytable) x
on x.maxit = t.interaction_type;
कोई group by
. नहीं इस क्वेरी के लिए आवश्यक है।