Я делаю некоторый анализ данных в PostgreSQL 10.6, основываясь на этой демонстрационной настройке:
create table history (
registered_unix int,
requested_unix int,
alias character varying(255)
);
INSERT INTO history VALUES
(1537841388, 1537878224, '3')
, (1538093202, 1538095740, '1')
, (1538093186, 1538095740, '3')
, (1538105501, 1538107039, '2')
, (1538105501, 1538107039, '4')
, (1538205007, 1538242243, '2')
, (1538205012, NULL , '1')
, (1538105501, NULL , '1')
, (1538205007, NULL , '3')
, (1538105501, NULL , '3')
, (1538040863, NULL , '3')
, (1537985996, NULL , '3')
, (1538205007, NULL , '4')
, (1538093186, NULL , '4')
, (1538205301, NULL , '5')
, (1538105501, NULL , '5')
, (1538093186, NULL , '5');
Я пытаюсь подсчитать количество последовательных alias
строк, где requested_unix
null, но только для первого вхождения и где последовательные вхождения больше или равны 2.
Данные отсортированы по псевдониму, а затем зарегистрированы_ unix DES C:
Желаемый результат:
Псевдоним 1: включен b / c его 2 самых последних значения «требуемый_ unix» равны нулю.
Псевдоним 2: пропущено. Запрошенный unix имеет значение в своей последней строке
Псевдоним 3: Включен b / c его 2 самых последних значения "требуемый_ unix" равны нулю. Старые отбрасываются.
Псевдоним 4: Пропущено. Имеет только 1 самое последнее значение «требуемый_ unix» со значением ноль. 2-й ряд имеет значение.
Псевдоним 5: Включен. 3 последних последовательных значения равны нулю.
Существуют все виды билетов с подсчетом последовательных вхождений или обнаружением первого вхождения, но, похоже, я хочу объединить два подхода.