SQL dentro do SAS

SQLNome

SELECT Nome from tabela XYZ
SELECT * from tabela XYZ

proc sqlrun

proc sql;
    select * from tabela XYZ;
run;

a.*ab’a

proc sql;
    select a.* from tabela XYZ as a;
run;

select Nomedata step Create Table

proc sql;
    create table Tabela_Nomes as
    select Nome from tabela XYZ;
run;

proc sql

  • Where: Um tipo de filtro, semelhante ao if. Vamos supor que a base contenha a coluna renda com o salário dos clientes e você queira apenas o nome de quem possui renda superior a mil reais. Agora, você terá que selecionar duas colunas, Nome e Renda, e a tabela com esses clientes seria criada da seguinte forma:
proc sql;
    create table Tabela_Renda as
    select id, Nome, Renda
    from tabela_exemplo
    where renda > 1000;
run;

  • Group by: Serve para agrupar os dados por algum campo em comum. Vamos pensar agora nos clientes que possuem várias fontes de renda, aquela pessoa que além do salário da empresa também possui rendas com aluguéis ou trabalhos de freelancer. Sendo assim, a base terá várias linhas com rendas diferentes para esse cliente. Se você quiser a renda total dele, você terá que somar essas rendas diferentes e agrupar pelo nome:
proc sql;
    create table Tabela_Renda_Cliente as
    select id, Nome, sum(Renda) as Renda_Total
    from tabela_exemplo
    group by id, nome
    having Renda_Total > 1000;
run;

  • Having : Bem semelhante ao where, é utilizado para o filtro depois de alguma tratativa. Como queríamos selecionar os clientes com renda acima de mil reais, e com o where só considerávamos a renda de um emprego, agora podemos filtrar os clientes com renda total acima de mil reais utilizando o having:
proc sql;
    create table Tabela_Renda_Cliente_2 as
    select id, Nome, sum(Renda) as Renda_Total
    from tabela_exemplo
    group by id, nome
    having Renda_Total > 1000;
run;

proc sql;
    create table Tabela_Renda_Cliente_3 as
    select id, Nome, sum(Renda) as Renda_Total
    from tabela_exemplo
    group by id, nome
    having Renda_Total > 1000
order by Renda_Total;
Run;

0 comentários em “SQL dentro do SAS”

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *