Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
423 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
You can find other training resources for the subject of this exercise here:
You can also book hourly online consultancy for your time zone with one of our 7 expert trainers!
| Software ==> | Postgres SQL (15 exercises) |
| Topic ==> | Calculations (5 exercises) |
| Level ==> | Relatively easy |
| Subject ==> | PostgreSQL training |
This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.
If you don't have a copy of the music_01 database, first follow the instructions at the following link to create it: https://www.wiseowl.co.uk/postgres/exercises/postgres-sql/using-postgres/5350/
Write a query to return the following columns from the Show table.

We'll calculate new values using these columns.
Add a new column to the SELECT list which subtracts the Tickets_sold column from the Tickets_available column. Apply an alias to your new column to name it Unsold_tickets.

You'll scroll down to see the first show with unsold tickets.
Add an ORDER BY clause to sort the shows in descending order of unsold tickets. You can use your column alias to do this.

Don't forget you'll need NULLS LAST to push null values for unsold tickts to the bottom of your query.
Add a WHERE clause to return only shows which had at least 30000 unsold tickets.

Wise Owl aren't sure how accurate these numbers are!
You won't be able to use your column alias in the WHERE clause, so you'll need to repeat the calculation in this part of your query.
Add another calculated column to the same query which divides the revenue_$ column by the tickets_sold column. Name this column avg_ticket_price.

You should also add a criteria to exclude shows where the revenue_$ is null.
Finally, add one more calculated column which multiplies the number of unsold tickets by the average ticket price.

Name your new column lost_revenue.
You won't be able to refer to your previous calculated columns, so you'll have to repeat both expressions in your new formula. Don't forget to use round brackets to control the order of operations!
Save the script as Money against the wall.sql and then close it down.
You can find other training resources for the subject of this exercise here:
You can also book hourly online consultancy for your time zone with one of our 7 expert trainers!
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2026. All Rights Reserved.