SHOW:
|
|
- or go back to the newest paste.
1 | - | -- https://pgexercises.com/questions/aggregates/nbooking.html |
1 | + | -- https://pgexercises.com/questions/aggregates/rankmembers.html |
2 | ||
3 | - | with t1 as( |
3 | + | with t1 as ( |
4 | - | select surname, firstname, m.memid, starttime |
4 | + | select firstname, surname, ROUND(sum(slots/2.0),-1) as hours |
5 | - | from cd.members m |
5 | + | -- round(x,-1) rounds x to nearest 10, https://stackoverflow.com/a/41210389 |
6 | - | join cd.bookings b |
6 | + | from cd.bookings b |
7 | - | on b.memid = m.memid |
7 | + | join cd.members m |
8 | - | where starttime::DATE >= '2012-09-01' |
8 | + | on b.memid = m.memid |
9 | - | group by 1,2,3,4 -- removing group by produces wrong data in the next step |
9 | + | group by 1, 2 |
10 | - | order by 3 asc |
10 | + | order by 3 desc, 2 asc, 1 asc |
11 | ) | |
12 | select *, rank() over(order by hours desc) | |
13 | - | select distinct on (3) * |
13 | + | from t1 |