You are on page 1of 1

SELECT * FROM employee;

select b.employee_id as emp_id,


b.employee_name as emp_name,
a.employee_name as man_name,
a.employee_id as man_id

from employee a
right outer join employee b
on a.employee_id = b.manager_id;

SELECT * FROM employee e where rowid = (SELECT max (rowid) FROM employee);--last
record in table
SELECT * FROM account_details a;-- order by a.trans_amount desc;
SELECT * FROM account_details a where 2= (select count( distinct trans_amount)from
account_details a1
where a.trans_amount<=a1.trans_amount);-- 2nd last transaction amount
SELECT min(trans_amount) FROM(SELECT distinct (a.trans_amount) FROM account_details
a order by a.trans_amount desc) WHERE rownum<=2;-- 2nd last transaction amount
SELECT * FROM account_details a where rownum<=4 order by a.trans_amount desc;-- top
4 rows

Select * from Employee e order by rowid desc;


select * from (Select * from Employee e order by rowid desc) where rownum <=3;----3
rows from last
Select * from Employee e order by rowid asc;
select * from (Select * from Employee e order by rowid asc) where rownum <=3;-- 3
rows from top

SELECT * FROM employee e where rowid =(select max(rowid) from employee e1 where
e.employee_id=e1.employee_id);--get distinct rows without usinfg DISTINCT key

SELECT * FROM employee e;


1 123 smith 383
2 777 raj 222
3 383 mirza 222
4 456 saurav
5 222 willaim 383
6 123 smith 383
7 383 mirza 222

select * from employee e1 where rowid=(select max(rowid) from employee e where


e.employee_id=e1.employee_id);--distinct rows
select * from employee e1 where rowid<>(select max(rowid) from employee e where
e.employee_id=e1.employee_id);--duplicate rows

select e.employee_id, count (e.employee_id) from employee e group by


e.employee_id;---- count of employee id
select e.employee_id, count (e.employee_id) from employee e group by e.employee_id
having count (e.employee_id)>1 order by e.employee_id desc;-- count of duplicate
rows

You might also like