По умолчанию SQL Procedure
реализует автоматическое повторное объединение сводной статистики.
За документацию
Повторное объединение данных
При использовании функции сводки в предложении SELECT или предложении HAVING в журнале SAS может отображаться следующее сообщение:
NOTE: The query requires remerging summary
statistics back with the original
data.
Процессповторное объединение включает в себя два прохода через данные.
При первом проходе PROC SQL
• вычисляет и возвращает значение функций суммирования. Затем он использует результат для вычисления арифметических выражений, в которых участвует функция итога.
• группирует данные в соответствии с предложением GROUP BY.
На втором проходе PROC SQL извлекает любые дополнительные столбцы и строки, которые необходимо отобразить в выходных данных.
Примечание: Чтобы указать, что PROC SQL не обрабатывает запросы, использующие повторное объединение данных, используйте либо параметр PROC SQL NOREMERGE, либо системный параметр NOSQLREMERGE. Если попытка повторного объединения будет предпринята, когда задан параметр NOMERGE или системный параметр NOSQLREMERGE, в журнал SAS будет записана ошибка.
Запрос, который NOT полагается на автоматическое повторное объединение, будетпохож на следующий пример:
proc sql;
create table want as
select all.* from
(select make, min(msrp) as lowest from sashelp.cars group by make) as sequencer
join
sashelp.cars as all on sequencer.make = all.make
order by sequencer.lowest, all.make, all.msrp
;
В окне LOG
отобразится NOTE
в зависимости от того, как используется lowest
:
NOTE: The query as specified involves ordering by an item that doesn't appear in its SELECT clause.