Eghbal Shirasb
3 سال پیش توسط Eghbal Shirasb مطرح شد
2 پاسخ

limit در group by در mysql

سلام وقت همه دوستان بخیر باشه.
بنده یک سوال در زمینه mysql داشتم.
فرض کنید من یک جدول به شکل زیر دارم.
توضیح تصویر رو وارد کنید

در این جدول من 3 تا پارامتر یوزر ، ویدئو و سرعت دیده شده رو دارم.

حال سوال اینه که من میخوام میانگین سرعت 3 ویدئو ی آخر دیده شده ی هر کاربر در هر کورس رو بدست بیارم.
برای وصل شدن ویدئو به کورس، باید 2 تا جوین بین کورس و تاپیک و ویدئو داشته باشیم.

برای مثال من با کد زیر میانگین سرعت هر کاربر در یک کورس رو بدست میارم. ولی سوال اینه که چه طور میانگین 3 ویدئوی آخر رو بدست بیارم؟

SELECT avg(favorite_speed),favorite_speed.user_id,topics.course_id FROM favorite_speed,videos,topics WHERE favorite_speed.video_id=videos.id AND topics.id=videos.topic_id GROUP BY user_id,videos.topic_id  
ORDER BY `avg(favorite_speed)`  DESC

@ali.bayat @hesammousavi


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 3 سال پیش مطرح شد
0

با رابطه join یا اصلا با where کردن آی دی کاربر سه رکورد اخر رو فیلتر میکنید و در نهایت اگر بخواید با query میانگین رو بدست بیارید با avg هم میشه


Eghbal Shirasb
تخصص : طراح دیتابیس و متخصص backend a...
@eghbal1377 3 سال پیش مطرح شد
0

من در آخر با row_number نوشتم.
دوستان دیگ هم که اگر به چنین مشکلی خوردن باید این کار رو بکنن.
فکر میکنم از نظر پرفورمنس جوین کردن 3 تا با هم. توی تیبلی ک 40 هزار تا داشته باشه اصلا شدنی نباشه...


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام