0% found this document useful (0 votes)
186 views

SQL Queries

This document contains 29 SQL queries related to retrieving and analyzing data from database tables. The queries select rows based on conditions, group and aggregate data, find minimum, maximum and rank values, and perform other analytical functions on the data in tables.

Uploaded by

shaikiliyas
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
186 views

SQL Queries

This document contains 29 SQL queries related to retrieving and analyzing data from database tables. The queries select rows based on conditions, group and aggregate data, find minimum, maximum and rank values, and perform other analytical functions on the data in tables.

Uploaded by

shaikiliyas
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

SQL

QUERIES

IBM
Vishwas.K.
1.SELECT Nth ROW FROM TABLE
SELECT *
FROM ( SELECT empno,ename,job, rownum n FROM emp)
WHERE n=&p;
(OR)
SELECT empno,ename,rownum
FROM emp
GROUP BY empno,ename
HAVING rownum=&p;

2. SELECT 4,6,8TH ROWS FROM TABLE.


SELECT *
FROM (SELECT empno,ename,job, rownum n FROM emp)
WHERE n IN(4,6,8);

3. SELECT ALTERNATE ROWS FROM TABLE.


SELECT empno,ename,rownum
FROM emp
GROUP BY empno,ename,rownum
HAVING MOD(rownum,2)=0;
(OR)
SELECT *
FROM emp
WHERE rowid IN( SELECT DECODE(MOD(rownum,2),0,rowid) FROM emp);

4. SELECT DUPLICATE ROWS FROM TABLE.


SELECT empno,ename
FROM emp
GROUP BY empno, ename
HAVING MAX(rowid) <> MIN(rowid);

5. SELECT ROWS WHICH ARE NOT HAVING DUPLICATE.


SELECT empno,ename
FROM emp
GROUP BY empno,ename
HAVING MAX(rowid) = MIN(rowid);

6. FIND THE NUMBER OF NULLS IN EACH COLUMN & TOTAL NO. OF NULLS IN
TABLE.
SELECT SUM(DECODE(mgr, null, 1, 0)), SUM(DECODE(comm, null, 1, 0)),
SUM(DECODE(mgr, null, 1, 0)) + SUM(DECODE(comm, null, 1, 0)) as total_nulls
FROM emp;

7. EMPLOYEE WHO JOINED IN THE YEAR 80,81


SELECT *
FROM emp
WHERE to_char(hiredate,’yy’) IN (80,81);
(OR)
SELECT *
FROM emp
WHERE EXTRACT(year from hiredate) IN (1980,1981);

8. FIND OUT THE YEAR & NO. OF EMPLOYEES HIRED IN THAT YEAR.
SELECT TO_CHAR(hiredate,’yy’), count(empno)
FROM emp
GROUP BY _CHAR(hiredate,’yy’);
9. SELECT ONLY DISTINCT ROWS.
SELECT *
FROM emp
WHERE rowid IN( SELECT MIN(rowid)
FROM emp
GROUP BY ename);

10. DISPLAY ONLY DUPLICATE ROWS WHICH ARE MORE THAN ONCE.
SELECT *
FROM emp
WHERE rowid NOT IN (SELECT MIN(rowid)
FROM emp
GROUP BY ename);
(OR)
SELECT empno,ename
FROM emp
GROUP BY empno, ename
HAVING count(ename)>1;

11. FIND EMPLOYEES WHO JOINED ON SAME DATE.


SELECT *
FROM emp a
WHERE 2 <= (SELECT COUNT(*)
FROM emp b
WHERE a.hiredate=b.hiredate);

12. HOW MANY EMPLOYEES JOINED IN THE YEAR 1980/1981.


SELECT count( *)
FROM emp
WHERE to_char(hiredate,’yy’) IN (80,81);
(OR)
SELECT count( *)
FROM emp
WHERE EXTRACT(year from hiredate) IN (1980,1981);

13. FIND THE SUM OF SALARIES DEPARTMENT WISE.


SELECT deptno,SUM(SAL)
FROM emp
GROUP BY deptno;

14. FIND OUT RANK OF SALARY.


SELECT empno,ename,sal, RANK() OVER(ORDER BY SAL)
FROM emp;

15. FIND OUT DENSE RANK OF SALARY.


SELECT empno,ename,sal,DENSE_ RANK() OVER(ORDER BY SAL)
FROM emp;

16. SELECT TOP-5 SALARY EARING EMPLOYEES.


SELECT ename,sal, rownum RANK
FROM ( SELECT ename,sal
FROM emp
ORDER BY sal DESC)
WHERE rownum<=5;

17. FIND THE NO. OF COLUMNS IN A TABLE.


SELECT COUNT(column_name)
FROM user_tab_columns
WHERE table_name=’emp’;
18. FIND IN EMPLOYEE TABLE – HOW MANY COLUMNS ARE OF TYPE=DATE.
SELECT column_name
FROM user_tab_columns
WHERE table_name=’emp’ AND datatype=’DATE’;

19. HOW MANY EMPLOYEES IN EACH DEPARTMENT.


SELECT d.dname, COUNT(e.empno)
FROM emp e, dept d
WHERE e.deptno=d.deptno
GROUP BY d.dname;

20. DISPLAY DETAILS OF ALL EMPLOYEE ALONG WITH THEIR DEPARTMENT.


SELECT e.*, d.*
FROM emp e, dept d
WHERE e.deptno=d.deptno;

21. DISPLAY Nth HIGHEST SALARY.


SELECT *
FROM emp a
WHERE &n = (SELECT COUNT(DISTINCT sal))
FROM empb
WHERE a.emp<=b.emp);

22. TOP-3 HIGHEST SAL


SELECT distinct(sal)
FROM emp x
WHERE 3>=( SELECT COUNT(DISTINCT sal))
FROM emp y
WHERE x.sal<= y.sal);

23. EXECPT TOP-3 HIGHEST SAL


SELECT distinct(sal)
FROM emp x
WHERE 3<= ( SELECT COUNT(DISTINCT sal))
FROM emp y
WHERE x.sal<= y.sal);

24. LEAST- 3 LOWEST SAL


SELECT distinct(sal)
FROM emp x
WHERE 3>= ( SELECT COUNT(DISTINCT sal))
FROM emp y
WHERE x.sal>= y.sal);

25.EXCEPT LEAST- 3 LOWEST SAL


SELECT distinct(sal)
FROM emp x
WHERE 3<=( SELECT COUNT(DISTINCT sal))
FROM emp y
WHERE x.sal>= y.sal);

26. SELECT THE SALARY WITH MAXIMUM COUNTS.


SELECT sal, count(sal)
FROM emp
GROUP BY sal
HAVING COUNT(sal) = ( SELECT MAX(COUNT (sal))
FROM emp
GROUP BY sal);
27. ON WHAT DATE MAXIMUM NO. OF EMPLOYEES JOINED.
SELECT hiredate, count(empno)
FROM emp
GROUP BY hiredate
HAVING COUNT(empno) = ( SELECT MAX(COUNT (empno))
FROM emp
GROUP BY hiredate);

28. SELECT EMPLOYEES WHOSE SALARY IS LESS THAN THE MAXIMUM SALARY
OF THEIR DEPT.
SELECT a.ename,a.sal,a.deptno, b.maxsal
FROM emp a, ( SELECT deptno, max(sal) maxsal
FROM EMP
GROUP BY deptno)b
WHERE a.deptno=b.deptno AND a.sal < b.maxsal;

29. DETAILS OF ALL EMPLOYEES WORKING IN THE SAME DEPT AS


ENAME=’FORD’.
SELECT *
FROM emp
WHERE deptno = ( SELECT deptno
FROM emp
WHERE ename=’FORD’);

You might also like