how to get second highest salary from a employee table and
how get a 5th highest salary from a employee table?
Answers were Sorted based on User's Feedback
Answer / pricil kurian
/*sort employee table by salary in desending order */
proc sort data=xx nodupkey;
by descending sal ;
run;
/*outputting the second and 5th largest salary to then yy
dataset */
data yy;
set xx;
if _n_ in (2, 5) then output;
run;
Is This Answer Correct ? | 35 Yes | 13 No |
Proc sql;
Select salary
From
Where salary in (select max
(salary) from
Where salary <(select max
(salary) from
));
Quit;
For second salary
calculation
If salary is not repeted
then
Proc sort data= xxx;
By salary;
Run;
Options firstobs =5;
Proc print data = xxx;
Var salary;
Run;
Is This Answer Correct ? | 4 Yes | 2 No |
Answer / vidit malhotra
/*Proc RANK method*/
proc rank data=paydept out=order descending ties=dense;
var Salary;
ranks SalaryRank;
run;
proc sql;
select Name,Salary,SalaryRank from order where SalaryRank IN (2,5);
quit;
Is This Answer Correct ? | 2 Yes | 0 No |
Answer / poorna m
proc sort data=emp out=emp1 nodupkey;
by descending sal empid;
run;
PROC RANK DATA=emp1 OUT=emp3 TIES=LOW DESCENDING;
VAR sal ;
RANKS highestsal;
RUN;
data emp4;
set emp3;
where highestsal in (2,5);
run;
Is This Answer Correct ? | 1 Yes | 1 No |
Answer / pallavi
proc sort data=xxx;
by descending sal;
run;
proc sql;
select Sal, monotonic() as count
from xxx
having count in(2,5);
quit;
Is This Answer Correct ? | 3 Yes | 6 No |
Answer / richa
It can be done by first sorting the dataset in the
ascending order of salary and then using the 'point='
option.
For eg:
proc sort data = x;
by salary;
quit;
/*second highest salary*/
data y;
a = 2;
set x point = a;
stop;
run;
/*fifth highest salary*/
data y;
a = 5;
set x point = a;
stop;
run;
Is This Answer Correct ? | 6 Yes | 10 No |
Answer / vijay
proc sort data=samp out= samp1 nodupkeys;
by sal descending _all_;
run;
/*second highest salary obs will come into samp2 dataset */
/*for fifth highest salary obs change slice value from 2 to 5 */
data samp2;
slice = 2;
set samp1 point = slice;
output;
stop;
run;
Is This Answer Correct ? | 1 Yes | 7 No |
Answer / beneet kumar pandey
/*second highest salary*/
first select max sal from employee table then select second
max sal from employee table.
Select max(salary) less then(select max(salary) from
employee) from employee;
/*same condition for fifth highest salary*/
Is This Answer Correct ? | 1 Yes | 8 No |
Answer / nandu
proc sort data=samp nodupkeys;
by sal descending ;
run;
data samp1 samp2;
set samp ;
ln+1 ;
if ln=2 then output samp2 ;
else samp ;
run;
/*second highest salary obs will come into samp2 dataset */
Is This Answer Correct ? | 3 Yes | 11 No |
what is the diff. b/w proc means and proc summary?
Do we follow ADAM in analysis dataset development?How? Usually which version? Why is it necessary?
Under what circumstances would you code a SELECT construct instead of IF statements?
Are you involved in writing the inferential analysis plan? Tables specifications?
What is _n_?
Are the preferred term counts are always equal to Body system counts? If so, Why are they equal if not why they are not equal?
Explain append procedure?
how to write code for left outer join in SAs using datastep?
what are methods to identify duplicate observations?
if you were told to create many records from one record, show how you would do this using array and with proc transpose? : Sas programming
what are the methods that you would employ to fine tune your SQL extract process using SAS/Access or Proc SQL?
Tell different ways to create Macrovarible?
3 Answers Accenture, PharmaNet i3,