Sql: подсчет дней между значениями более 1000 в течение 5 дней
Я хотел бы выбрать количество дней между первым разом, когда ячейка в" value " coulum находится ниже -1000, пока она не будет выше, но только если количество дней превышает 5 дней:
Итак, в этом примере, если бы вы хотели получить 6 из "value colum", но только 2 и 3 в value2 colum
Date Value Value2 25-01-2017 600 600 23-01-2017 -400,00 -400,00 20-01-2017 -2300,00 -2300,00 19-01-2017 -1200,00 -1200,00 18-01-2017 -1600,00 -1600,00 17-01-2017 -3400,00 500,00 16-01-2017 -1333,00 -1333,00 13-01-2017 -4567,00 -4567,00 12-01-2017 -453,00 -453,00 11-01-2017 300,00 300,00
Название таблицы: баланс
Что я уже пробовал:
select (a.date-b.date) as count from balance a left join balance b on a.date=b.date where value>1000 and count>4
RAMASWAMY EKAMBARAM
Ваше требование будет более ясным, если вы объясните со ссылкой на вышеприведенные данные, что вы имеете в виду, получая 6 wrt column 'value' и 2 & 3 wrt 'value2'. На самом деле в вашем запросе нет ссылки на столбец "value2".
GKP1992
Разве он не должен быть равен нулю для столбца Value2? Так как значение возвращается к 500 17-01-2017 и никогда не опускается ниже -1000 в течение 5 и более дней.
Member 13374159
В принципе, я хотел бы только идентифицировать клиентов с овердрафтом более отрицательным, чем -1000, в течение 5 дней подряд.
Таким образом, в этом примере клиент с данными, как в столбце "Значение", должен либо получить количество 6, либо просто двоичное значение 1, в то время как клиент, как в столбце "Значение 2", должен получить количество 2 и 3 или двоичное значение 0.
Member 12528773
Если я хорошо понимаю ваш запрос, я думаю, что вам, возможно, придется ввести CustomerID, так что на вашей иллюстрации будет 2 клиента, клиент 1 со значением и клиент 2 со значением 2. Когда вы говорите овердрафт, вы имеете в виду отрицательный баланс? Подтвердите, так ли это. Затем я попытаюсь идентифицировать клиентов с овердрафтом 1000 или более в течение 5 дней подряд.