У меня есть таблица «Люди» со следующими столбцами: идентификатор, имя, имя, адрес, город, штат, почтовый индекс в Oracle 9.x
Я хочу получить самый населенный почтовый индекс на город в штате
Я написал этот запрос:
Select City, State, Zip, count(*)
From People
Group By City, State
Order By count(*)
Но он дает мне НЕСКОЛЬКО строк для города для штата, Как (составлено): -
City -- State -- Zip -- Count(*)
City0 -- ST0 -- 32111 -- 50
City1 -- ST1 -- 11223 -- 100
City1 -- ST1 -- 11225 -- 90
City1 -- ST1 -- 11226 -- 50
City2 -- ST1 -- 11255 -- 70
City3 -- ST2 -- 55443 -- 60
Iпопробовал предложение HAVING, например: Имея Count () = max (Count ()), НО получило сообщение об ошибке: NESTED имеет слишком глубокое предложение или что-то подобное (Oracle 9.x)
Я хочу толькоВерхняя строка: - City1 - ST1 - 11223 - 100 для всех строк City1 - ST1, Другие строки, где для каждого города имеется только одна строка для каждого штата, которые останутся такими же.WANTED OUTPUT: -
City -- State -- Zip -- Count(*)
City0 -- ST0 -- 32111 -- 50
**City1 -- ST1 -- 11223 -- 100**
City2 -- ST1 -- 11255 -- 70
City3 -- ST2 -- 55443 -- 60
Как мне этого добиться?Спасибо за просмотр.
==========
ОТВЕТ НАЙТИ ОТ ОТВЕТА ДЖИМА ХАДСОНА Путем небольшого изменения предоставленного запроса я понял его правильно.ЗАКЛЮЧИТЕЛЬНЫЙ КОД: -
select city, state, zip, counter from (
select city, state, zip, count(*) as counter from people group by city, state, zip
)
where counter = (
select max(count2) from (
select city as city1, state as state1, zip as zip1, count(*) as count2 from people group by city, state, zip )
where city=city1 and state=state1
);