5 kyu
Using LATERAL JOIN To Get Top N per Group
2,033 of 2,035pmatseykanets
Description:
Description
Given the schema presented below write a query, which uses a LATERAL join, that returns two most viewed posts for every category.
Order the result set by:
- category name alphabetically
- number of post views largest to lowest
- post id lowest to largest
Note:
- Some categories may have less than two or no posts at all.
- Two or more posts within the category can be tied by (have the same) the number of views. Use post id as a tie breaker - a post with a lower id gets a higher rank.
Schema
categories
Column | Type | Modifiers
------------+-----------------------------+----------
id | integer | not null
category | character varying(255) | not null
posts
Column | Type | Modifiers
------------+-----------------------------+----------
id | integer | not null
category_id | integer | not null
title | character varying(255) | not null
views | integer | not null
Desired Output
The desired output should look like this:
category_id | category | title | views | post_id
------------+----------+-----------------------------------+-------+--------
5 | art | Most viewed post about Art | 9234 | 234
5 | art | Second most viewed post about Art | 9234 | 712
2 | business | NULL | NULL | NULL
7 | sport | Most viewed post about Sport | 10 | 126
...
category_id
- category idcategory
- category nametitle
- post titleviews
- the number of post viewspost_id
- post id
SQL
Fundamentals
Databases
Similar Kata:
Stats:
Created | Nov 7, 2016 |
Published | Nov 7, 2016 |
Warriors Trained | 6249 |
Total Skips | 1838 |
Total Code Submissions | 19607 |
Total Times Completed | 2035 |
SQL Completions | 2033 |
Total Stars | 147 |
% of votes with a positive feedback rating | 94% of 289 |
Total "Very Satisfied" Votes | 261 |
Total "Somewhat Satisfied" Votes | 23 |
Total "Not Satisfied" Votes | 5 |
Total Rank Assessments | 18 |
Average Assessed Rank | 5 kyu |
Highest Assessed Rank | 4 kyu |
Lowest Assessed Rank | 6 kyu |