2012-02-07 2 views
1

Я пытаюсь написать инструкцию SQL для извлечения City, State и zipcodes для этого города и штата. Мой запрос должен возвращать только одно состояние, Город и список почтовых индексов. Я не знаю, как его написать. Я не хорошо @ Sql. Было бы здорово, если бы кто-нибудь мог мне помочь.выбор проблемы с почтовыми индексами с помощью SQL

Моя таблица выглядит

Город -------------------------- Штат -------- - Zipcode ------------ County

Alpharetta  Georgia  30004   Fulton 
Alpharetta  Georgia  30005   Fulton 
Alpharetta  Georgia  30007   Fulton 
+4

Хорошо, вы плохо разбираетесь в SQL. Вы хорошо пытаетесь? Что вы пробовали? –

+0

@Catcall Я попробовал это --- выберите * from ( выбрать город, штат, почтовый индекс, rank() over (раздел по городам, государственный заказ cnt desc) ранг от ( Выберите город, штат, почтовый индекс, счет (*) cnt От postaldata Группа по городу, штат )) , где rank = 1 – Siva

+0

Вы делаете это намного сложнее, чем вам нужно. См. Http://stackoverflow.com/a/9169243/562459 –

ответ

2
SELECT 
    City, State, County, 
    GROUP_CONCAT(Zipcode SEPARATOR ',') AS Zipcodes 
FROM 
    MyTable 
WHERE 
    <Whatever you have> 
GROUP BY 
    City, State 
+0

Ничего себе это отлично работает @Eugen Rieck благодарит за отличную помощь – Siva

0

Заявление будет выглядеть следующим образом

SELECT "City", "State", "Zipcode" 
FROM Table 
WHERE "City" = 'CityName' AND "State" = 'StateName' 
GROUP BY "City", "State" 

Это даст вам их на основе города, штата и почтовый индекс grou пинг будет убедиться, что вы получаете больше, чем один на строку

+0

Это дает мне строки с одним совпадением. Я искал список почтовых индексов для данного города и штата. – Siva

+0

Хорошо, если вы удалите группу, то она должна предоставить то, что вы ищете. – darren102

3

ли вы имеете в виду это ?:

SELECT City,State,Zipcode 
FROM my_table 
WHERE City='Alpharetta' AND State='Georgia' 

Он подберет все для Альфаретты Почтовых индексов Грузии. Вы получите одну строку в результатах для каждого почтового индекса и соответствующего города/штата (т.е. «Альфаретта» & «Грузия»).

Или, если вы имеете в виду вы хотите что-то вроде этого:

City  State  Zipcodes 
Alpharetta Georgia 30004,30005,30007 
..... 

, то вы можете попробовать:

SELECT City, State, GROUP_CONCAT(Zipcode) AS Zipcodes 
FROM my_table 
GROUP BY City, State 

(с необязательными WHERE City='xxxxx' AND State='yyyyy').

Docs for GROUP_CONCAT.

+0

Я искал второй вариант. Спасибо за большую помощь. – Siva

Смежные вопросы