w3resource

SQL exercises on movie Database: Find the movie title, and the highest number of stars that movie received

SQL movie Database: Subquery Exercise-11 with Solution

11. From the following tables, write a SQL query to find those movies, which have received highest number of stars. Group the result set on movie title and sorts the result-set in ascending order by movie title. Return movie title and maximum number of review stars.

Sample table: rating


Sample table: movie


Sample Solution:

SELECT mov_title, MAX(rev_stars)
FROM movie, rating 
WHERE movie.mov_id=rating.mov_id 
AND rating.rev_stars IS NOT NULL
GROUP BY  mov_title
ORDER BY mov_title;

Sample Output:

                     mov_title                      | max
----------------------------------------------------+------
 Aliens                                             | 8.40
 American Beauty                                    | 7.00
 Annie Hall                                         | 8.10
 Avatar                                             | 7.30
 Beyond the Sea                                     | 6.70
 Blade Runner                                       | 8.20
 Boogie Nights                                      | 3.00
 Braveheart                                         | 7.70
 Donnie Darko                                       | 8.10
 Good Will Hunting                                  | 4.00
 Lawrence of Arabia                                 | 8.30
 Princess Mononoke                                  | 8.40
 Slumdog Millionaire                                | 8.00
 The Innocents                                      | 7.90
 The Usual Suspects                                 | 8.60
 Titanic                                            | 7.70
 Vertigo                                            | 8.40
(17 rows)

Code Explanation:

The said query in SQL that retrieves the movie titles along with the maximum rating stars for each movie, where the ratings are not null. The results are sorted in alphabetical order based on the movie titles.
The query joins the movie and rating tables using the mov_id column, then applies a filter to exclude any rows where the rev_stars column is null. The MAX function is used to retrieve the highest rating value for each movie title, and the GROUP BY clause is used to group the results by mov_title. The ORDER BY clause sorts the results in alphabetical order based on mov_title.

Relational Algebra Expression:

Relational Algebra Expression: Find the movie title, and the highest number of stars that movie received.

Relational Algebra Tree:

Relational Algebra Tree: Find the movie title, and the highest number of stars that movie received.

Practice Online


Movie database model

Query Visualization:

Duration:

Query visualization of Find the movie title, and the highest number of stars that movie received - Duration

Rows:

Query visualization of Find the movie title, and the highest number of stars that movie received - Rows

Cost:

Query visualization of Find the movie title, and the highest number of stars that movie received - Cost

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: From the following tables, write a SQL query to find those reviewers who rated more than one movie. Group the result set on reviewer’s name, movie title. Return reviewer’s name, movie title.
Next: From the following tables, write a SQL query to find all reviewers who rated the movie ‘American Beauty’. Return reviewer name.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

SQL: Tips of the Day

What is the best way to paginate results in SQL Server?

SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders
          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResult
WHERE   RowNum >= 1
    AND RowNum < 20
ORDER BY RowNum

Database: SQL Server

Ref: https://bit.ly/3MGrNlk

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook