Как объединить большое количество таблиц без многократного копирования и вставки одного и того же тела? - PullRequest
0 голосов
/ 27 декабря 2018

Я пишу код SAS, используя запрос PROC SQL, который будет вызывать в общей сложности 32,448+ таблиц.Я пытаюсь избежать необходимости копировать и вставлять один и тот же код 30K + раз.Я пишу код в PROC SQL, потому что SAS является новым для меня, но я приму ответ на SAS или SQL.

Есть предложения или ярлыки?

спасибо,

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Без подробностей сложно дать точный ответ.Но в целом в SAS будет гораздо проще кодировать это, используя обычный код SAS, а не SQL.

Предполагая, что под словом "таблица" вы подразумеваете набор данных SAS, и далее предполагая, что они все находятся в одной библиотеке (директории / папке) и имеют общий общий префикс (такой как week), затем шаг объединенияможет быть так просто, как:

libname mylib 'some folder name' ;
data want;
  set mylib.week: ;
run;
0 голосов
/ 27 декабря 2018

У вас проблема с вашей моделью данных, если у вас 32,448 таблиц.По всей вероятности, это всего лишь повторения одной таблицы, разделенные по некоторому коэффициенту - почтовому индексу, дате или тому подобному.Они должны храниться в одной таблице.

У вас есть другая проблема.Согласно документации :

Предложение FROM может содержать выражение запроса, которое принимает необязательный псевдоним таблицы.Этот тип вложенного выражения запроса называется встроенным представлением.Встроенное представление - это любое выражение запроса, которое будет допустимым в операторе CREATE VIEW.PROC SQL может поддерживать множество уровней вложенности, но он ограничен 256 таблицами в одном запросе.Ограничение в 256 таблиц включает в себя базовые таблицы, которые могут вносить вклад в представления, указанные в предложении FROM.

Таким образом, вы, вероятно, не можете делать то, что хотите, используя proc sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...