Что именно использовать SQL в SAS? - PullRequest
0 голосов
/ 02 апреля 2019

Я только начал изучать SAS и немного растерялся.Эта ссылка здесь показывает запрос к набору данных.Я думал, что это будет похоже на подключение к внешней базе данных и выполнить запрос запроса к базе данных.Так является ли DATA SET базой данных, а синтаксис SQL - просто еще одним способом обработки данных в DATA SET?Также вы можете порекомендовать лучший учебник.Бесплатный учебник / книга / исходники с открытым исходным кодом будут намного лучше.

Что ж, я все еще учусь и буду признателен за любое мнение / ответ / рекомендацию.

Я использую SAS University Edition практическив моем компьютере.

Ответы [ 3 ]

1 голос
/ 02 апреля 2019

Итак, DATA SET - это база данных, а синтаксис SQL - просто еще один способ обработки данных в DATA SET?

DATA SET - это таблица ( не база данных ), и да, SQL - это другой способ.

Вы можете думать о нативном движке библиотеки SAS, V9 как о базе данных. Например:

libname mydata          'c:\projectx\sasdata';  is the same as
libname mydata V9       'c:\projectx\sasdata';
libname mydata <engine> 'c:\projectx\sasdata';
libname mydata <engine> <options for connection parameters>;

V9 - это механизм по умолчанию, используемый, когда оператор libname указывает его. Существуют различные механизмы для подключения практически к любым удаленным (не SAS) базам данных, файлам данных или поставщикам данных, которые позволяют кодеру SAS кодировать SAS и не должны изучать язык или диалект удаленной среды.

Грубое сопоставление концепций структуры SAS с концепциями базы данных:

  • двигатель V9 ~ "база данных"
  • локальная папка ~ схема, экземпляр или каталог
  • набор данных ~ таблица
  • переменная ~ столбец
  • наблюдение ~ строка

Подробнее о движках можно узнать, выполнив поиск в справочной системе «Двигатели SAS» и «Как двигатели работают с файлами SAS»

Proc SQL позволяет вам кодировать с использованием SQL. Кодировщик может выбрать лучший язык для себя и для поставленной задачи; будь то SQL, DATA шагов и PROC шагов.

1 голос
/ 04 апреля 2019

Как кто-то сказал ранее, не путайте между SQL (язык запросов) и DataSet (это имя таблиц в SAS).Вот пример того же результата с использованием синтаксиса DATA SET и синтаксиса PROC SQL:

С DATA SET:

DATA myNewTable;
    SET myTable;
    WHERE id = 123;
RUN;

С синтаксисом PROC SQL:

PROC SQL;
   CREATE TABLE myNewTable AS
       SELECT * FROM myTable
       WHERE id = 123;
QUIT;

Надеюсь, это имеет смысл.

1 голос
/ 02 апреля 2019

Не путайте SQL (язык запросов) с mySQL, postgresql, sqlite или любой другой технологией баз данных.

proc sql является альтернативой шагу данных.

В большинстве случаев вы можете сделать то же самое с обоими, но один может быть способен работать лучше в определенной ситуации или использовать более простой / короткий синтаксис, чем другой.

Набор данных, который вы используете, не имеет ничего общего с языком, который вы используете для "запроса".

Просмотрите оператор LIBNAME для подключения к внешним базам данных.

...