Max & Group, возвращая разные результаты в Excel и Workbench - PullRequest
1 голос
/ 31 марта 2020

Написал запрос, возвращающий самую последнюю обновленную запись для каждого элемента за каждый день, другими словами, Item 444222 получает 12 записей каждый день, и запрос извлекает самую последнюю. Иногда записи вставляются за день до, после и после. Когда запрос выполняется в рабочей среде, я получаю правильное значение, но в Excel PowerQuery он возвращает самую раннюю запись. Есть ошибка кодирования с моей стороны, или это что-то еще? Любая помощь с этим будет оценена. record_type: varchar, date: date, item_number: int, cycle_id: int, schedule_cap: int, insert_date: timestamp.

Запрос прилагается ниже.

Select record_type, date, item_number, cycle_id, scheduled_cap, max(insert_date) 
from db.all_cycles
Where date >= '2016-01-01'
AND record_tyoe = 'I' 
AND cycle_id NOT IN (40, 38, 39, 41, 53, 185)

AND item_number IN ('94850', '94858', '452917')

group by item_number, date, record_type
order by date desc;

1 Ответ

1 голос
/ 31 марта 2020

Вы должны использовать фильтрацию , а не агрегацию :

select ac.*
from db.all_cycles ac
where ac.date >= '2016-01-01' and
      ac.record_tyoe = 'I' and
      ac.cycle_id not in (40, 38, 39, 41, 53, 185) and
      ac.item_number in ('94850', '94858', '452917') and
      ac.insert_date = (select max(ac2.insert_date)
                        from db.all_cycles ac2
                        where ac2.date = ac.date and
                              ac2.item_number = ac.item_number and
                              ac2.record_tyoe = ac.record_type
                       )
order by date desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...