Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3402078
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T05:05:39+00:00 2026-05-18T05:05:39+00:00

Need some help with putting this query together. I’m using Mysql I have two

  • 0

Need some help with putting this query together. I’m using Mysql

I have two tables

Video – contains videos uploaded by users

  • video_id
  • user_id
  • category_id

Vote – contains a vote given by any user for a particular video

  • vote_id
  • video_id
  • user_id

I don’t want to hardcode the categories in the query – the Categories are stored in the Category table which has category_id and category_name

I basically want a query that pulls the top 3 videos (ones with max votes) for each category.

Sample Data – Video Table

video_id |  user_id  | category_id
   1          100          10
   2          101          10
   3          102          11
   4          103          11
   5          104          11
   6          105          11
   7          105          12

Sample Data – Vote Table

vote_id  |  video_id |  user_id
  11           3          105
  12           3          102
  13           3          111
  14           3          121
  15           4          200
  16           4          201
  17           1          222

Sample Data – Category Table

category_id  |  category_name
   10               HipHop
   11               Rap
   12               Country
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T05:05:39+00:00Added an answer on May 18, 2026 at 5:05 am

    This is the type of problem that is trivial to solve with ranking functions. However, since MySQL does not yet support them, it makes it more difficult. In this design, I assumed that video_id was the primary key of the Video table.

    Select video_id, user_id, category_id, vote_count, vote_rank
    From    (
            Select VoteCounts.video_id, VoteCounts.user_id
                , VoteCounts.category_id, VoteCounts.vote_count
                , (
                    Select Count(*) + 1
                    From    (
                            Select V1.video_id, V1.user_id, V1.category_id
                                , Count(vote_id) As vote_count
                            From Videos As V1
                                Left Join Votes As V2
                                    On V2.video_id = V1.video_id
                            Group By V1.video_id, V1.user_id, V1.category_id
                            )  As VoteCounts1
                    Where VoteCounts1.category_id = VoteCounts.category_id
                        And (
                            VoteCounts1.vote_count > VoteCounts.vote_count
                            Or (VoteCounts1.vote_count = VoteCounts.vote_count
                                And VoteCounts1.video_id < VoteCounts.video_id )
                            )
                    ) As vote_rank
            From    (
                    Select V1.video_id, V1.user_id, V1.category_id
                        , Count(vote_id) As vote_count
                    From Videos As V1
                        Left Join Votes As V2
                            On V2.video_id = V1.video_id
                    Group By V1.video_id, V1.user_id, V1.category_id
                    )  As VoteCounts
            ) As VoteRanks
    Where VoteRanks.vote_rank <= 3
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need some help from the shell-script gurus out there. I have a .txt
Hi I need some help with the following scenario in php. I have a
I am getting a little confused and need some help please. Take these two
I am new to all the anonymous features and need some help. I have
I'm working with jQuery for the first time and need some help. I have
I need some help regarding algorithm for randomness. So Problem is. There are 50
I need some help calculating Pi. I am trying to write a python program
I need some help with jQuery script again :-) Just trying to play with
I need some help ... I'm a bit (read total) n00b when it comes
I've gone through most of the example code and I still need some help.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.