LAG (RegisterReading,1) OVER (PARTITION BY Mpancore ORDER BY meterserialnumber, MeterRegisterId) as LagFunc
Кто-нибудь, пожалуйста, помогите. БлагодаряФункция задержки, возвращающая случайное число для первого верхнего ряда
Привет всем, я обновил отчет со всеми ключами добавляется в отчете, я использовал его против met_reg_read
и mpan
в комбинации раздела, но это не похоже, чтобы получить предыдущий для некоторых из них, как 557
в lag func
и lag test
.
lagtestlooks нравится эта
LAG (d.RegisterReading,1,0) over (partition by Mpan, met_reg_read order by d.met_reg_read)
lagfunc
без по умолчанию 0
ссылку на новый выход
Спасибо, Гордон, это сработало для этого конкретного PMancore, но когда я запускаю его против другого образца, я снова получаю ту же проблему. Есть ли способ обойти это, используя ключ, который я привел в примере, чтобы он мог работать для каждого PMancore? Спасибо – abs786123
@ abs786123 - Детерминированные результаты требуют набора полей, которые могут * однозначно идентифицировать каждую строку. Эти поля затем могут использоваться в 'PARTITION BY' и' ORDER BY'. В ваших примерах данных это невозможно; даже если вы укажете все 5 полей, есть несколько строк, которые имеют одинаковые значения. Самое лучшее, что вы собираетесь получить * (для данных, которые вы показали) * - это что-то вроде «PARTITION by MpanCore, MeterIDSerialNumber, MeterRegisterID ORDER BY ReadDateAndTime, RegisterReading'. Если у вас больше полей для использования или вы хотите получить разные результаты, я рекомендую вам обновить свой вопрос более подробно. – MatBailie
Привет, я обновил результаты, чтобы принести все уникальные ключи, все еще есть проблема с появлением 557, когда это не было в чтении регистра. Я пробовал всевозможную комбинацию разделов и порядка, но он все еще показывает что-то другое. Я использовал уникальный ключ met_reg_read, думая, что это решило бы его, но это не так. Любая помощь будет оценена благодарю вас. – abs786123