У меня есть таблица с положениями животных, отсортированными по времени и местоположению. Я хочу увеличивать счетчик, когда когда-либо местоположение меняется с одного идентификатора на следующий. Таким образом, каждое «Пребывание» животного должно получать уникальный идентификатор (счетчик). У меня не- SQL описание:
counter = 0
CASE (location at ID = location at ID-1) SET counter+1
Я пытался использовать Dense_Rank (), но не смог правильно установить раздел. Вот пример с нужным счетчиком.
ID Location Counter
1 3 1
2 3 1
3 2 2
4 2 2
5 3 3
6 1 4
7 3 5
8 3 5
9 3 5
CREATE TABLE locations (idn serial PRIMARY KEY, location integer);
INSERT INTO locations (location ) VALUES (3);
INSERT INTO locations (location ) VALUES (3);
INSERT INTO locations (location ) VALUES (2);
INSERT INTO locations (location ) VALUES (2);
INSERT INTO locations (location ) VALUES (3);
INSERT INTO locations (location ) VALUES (1);
INSERT INTO locations (location ) VALUES (3);
INSERT INTO locations (location ) VALUES (3);
INSERT INTO locations (location ) VALUES (3);