У меня проблема с моим классом баз данных, которую я не могу понять.
У меня есть таблица под названием countries, которая выглядит следующим образом:
state_code | name | population
| |
| |
(в каждом state_code есть несколько округов)
Есть еще одна таблица с названием states, которая просто
state_code | name
|
|
В любом случае мне нужен запрос, который возвращает схему (state_name, county_name, county_population), которая перечисляет в порядке названия штата пять самых густонаселенных названий округов в каждом штате в порядке убывания численности населения вместе с населением этих округов.
У меня есть запрос, который выдает правильную схему, но показывает слишком много результатов, а не только первые 5:
SELECT state.name AS state_name, county.name AS county_name, county.population
FROM state JOIN county ON state.code = county.state_code
GROUP BY state.name, county.name, county.population
ORDER BY state.name, county.population DESC
Я пробовал более сложные решения, связанные с ранжированием, однако в нашей школе есть только версия PostgreSQL 8.3, в которой нет PARTITION OVER или RANK(), что очень усложняет задачу.
Спасибо
standard_conforming_strings
и изменение по умолчаниюbytea_output
, но не более того. См. примечания к выпуску. PostgreSQL бесплатен, поэтому нет причин не обновлять его. - person Craig Ringer   schedule 28.10.2012