2016-03-22 2 views
1

У меня есть таблица Postgres (9.3), которая имеет поле, называемое a.locations. Я хочу создать временную таблицу с последовательностью для нее, но с аналогичными местоположениями, имеющими один и тот же порядковый номер. Для того, чтобы прояснить ситуацию, моя текущая таблица (пример только):Создание последовательности, основанной на поле

ID  |  Locations 
1  |  Bangalore 
2  |  New York 
3  |  London 
4  |  Bangalore 
5  |  New York 

Что мне нужно, это:

ID  |  Locations 
1  |  Bangalore 
1  |  Bangalore 
2  |  London 
3  |  New York 
3  |  New York 

Цените помощь вообще. Заранее спасибо.

ответ

0

Попробуйте этот запрос:

INSERT INTO #temp (ID, locations) 
SELECT l2.minID, l1.locations 
FROM location l1 
INNER JOIN 
(
    SELECT locations, MIN(ID) AS minID 
    FROM location 
    GROUP BY locations 
) l2 
    ON l1.locations = l2.locations 
+0

Спасибо за это ... Что делать, если я хочу, чтобы создать новую последовательность .. Как я уже говорил я хочу, чтобы создать временную таблицу, а не обновлять оригинал ..? – Ang

+0

@Ang Я обновил свой ответ, чтобы использовать 'INSERT'. –

+0

Thanl вы еще раз .. – Ang

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