سلام وقت همه دوستان بخیر باشه.
بنده یک سوال در زمینه 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
با رابطه join یا اصلا با where کردن آی دی کاربر سه رکورد اخر رو فیلتر میکنید و در نهایت اگر بخواید با query میانگین رو بدست بیارید با avg هم میشه
من در آخر با row_number نوشتم.
دوستان دیگ هم که اگر به چنین مشکلی خوردن باید این کار رو بکنن.
فکر میکنم از نظر پرفورمنس جوین کردن 3 تا با هم. توی تیبلی ک 40 هزار تا داشته باشه اصلا شدنی نباشه...
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟