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”