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 |
Where do the database management systems store data and how do u import them.
what are the considerations when picking a SAS/STAT procedure?
0 Answers Accenture, Quintiles,
what is factor analysis? : Sas-administrator
What is the difference between INPUT and INFILE ?
What are the difference between the sas data step and sas procs?
what are different analysis datasets you created and what are the new variables created
What does error:1 mean?
What do the SAS log messages "numeric values have been converted to character" mean?
i have one dataset data l; input name: $ 25; cards; manoj is a good boy to krishna krishna is a god boy to malli malli is good boy to ramana ques: here i want "manoj" observations nubers
how to debug and test the sas program? : Sas-administrator
In the following DATA step, what is needed for ‘fraction’ to print to the log? data _null_; x=1/3; if x=.3333 then put ‘fraction’; run;
Name the option to produce a frequency line items rather that a table.