Я очень новичок в Proc sql и чувствую, что я ударился головой о стену. В принципе, я хочу сделать несколько разных промежуточных итогов, и я боролся. Я могу понять, как это сделать в двух sql-операциях, но я не могу понять, как их объединить в один оператор, используя подзапрос, который, похоже, должен быть возможен.Proc sql subtotals и подзапросы
Выборочные данные
*job, gender
*florist, female
*florist, female
*florist, male
*florist, male
*Manager, female
*Manager, female
*Manager, female
*Manager, male
*nurse, female
*nurse, female
*nurse, male
То, что я хочу, чтобы закончить получать из моего кода является:
Job Title| Gender | All answers to gender | Job by gender
Florist | female | 7 | 2
Florist | male | 4 | 2
Manager | female | 7 | 3
Manager | male | 4 | 1
nurse | female | 7 | 2
nurse | male | 4 | 1
Мой текущий код (который делает это в два этапа) является
proc sql;
create table newdata as
select gender, job,
count(gender) as GenderCount
from datasource where gender in ('f','m')
group by gender;
select * from newdata;
quit
proc sql;
create table newdata2 as
select *,
count(gender) as JobsByGender
from newdata
group by q1, q21;
select distinct * from newdata2 order by q21, q1;
quit;
Можете ли вы объяснить, почему вы делаете «select * from newdata» в конце вашего первого заявления proc sql? –
Кроме того, есть ли у вас причина не использовать более одного заявления proc sql? Вы просто хотите, чтобы данные были объединены в одну таблицу? –
да, я хочу это в одном столе, частично потому, что мне придется делать это много раз. У меня, вероятно, есть ненужный мусор, потому что я супер начинающий, и я использую аналогичный пример кода, чтобы выяснить, как я это делаю, и пытаюсь как-то с ним связать, потому что я чувствую, что я не очень понимаю что каждая часть делает. – eee333