Full review (do not merge)

Or you can write a query with 24 sub-selects :P