Common SQL Queries (2)

download Common SQL Queries (2)

of 20

Transcript of Common SQL Queries (2)

  • 7/29/2019 Common SQL Queries (2)

    1/20

    SQL> cl scr

    SQL> SELECT2 TO_CHAR(TO_DATE('&GiveNumber', 'J'), 'JSP') "Spelled Number"3 FROM DUAL;

    Enter value for givenumber: 1

    Spe---ONE

    SQL> /Enter value for givenumber: 12345

    Spelled Number----------------------------------------TWELVE THOUSAND THREE HUNDRED FORTY-FIVE

    SQL> /Enter value for givenumber: 2345

    Spelled Number-------------------------------------TWO THOUSAND THREE HUNDRED FORTY-FIVE

    SQL> cl scr

    SQL> SELECT2 'SATISH KUMAR YELLANKI' OrgName,3 TRANSLATE('SATISH KUMAR YELLANKI',4 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',5 '1234567890!@#$%^&*()-=_+;,.') EncryptedName6 FROM DUAL;

    ORGNAME ENCRYPTEDNAME--------------------- ---------------------SATISH KUMAR YELLANKI (1)9(8 !-#1* ;5@@1$!9

    SQL> edWrote file afiedt.buf

    1 SELECT2 '(1)9(8 !-#1* ;5@@1$!9' EncryptName,3 TRANSLATE('(1)9(8 !-#1* ;5@@1$!9',4 '1234567890!@#$%^&*()-=_+;,.',5 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'6 ) DecryptedName7* FROM DUAL

    SQL> /

    ENCRYPTNAME DECRYPTEDNAME--------------------- ---------------------(1)9(8 !-#1* ;5@@1$!9 SATISH KUMAR YELLANKI

    SQL> cl scr

    SQL> SELECT2 AVG(Sal), AVG(DISTINCT Sal)3 FROM Emp;

  • 7/29/2019 Common SQL Queries (2)

    2/20

    AVG(SAL) AVG(DISTINCTSAL)---------- ----------------2073.21429 2064.58333

    SQL> edWrote file afiedt.buf

    1 SELECT2 AVG(Comm)3* FROM Emp

    SQL> /

    AVG(COMM)----------

    550

    SQL> edWrote file afiedt.buf

    1 SELECT2 AVG(Comm),3 AVG(NVL(Comm, 0))4* FROM Emp

    SQL> /

    AVG(COMM) AVG(NVL(COMM,0))---------- ----------------

    550 157.142857

    SQL> cl scr

    SQL> SELECT2 SUM(Sal),3 SUM(DISTINCT Sal)4 FROM Emp;

    SUM(SAL) SUM(DISTINCTSAL)

    ---------- ----------------29025 24775

    SQL> edWrote file afiedt.buf

    1 SELECT2 SUM(Comm), AVG(Comm)3* FROM Emp

    SQL> /

    SUM(COMM) AVG(COMM)---------- ----------

    2200 550

    SQL> cl scr

    SQL> edWrote file afiedt.buf

    1 SELECT2 MAX(Sal), MIN(Sal)3* FROM Emp

  • 7/29/2019 Common SQL Queries (2)

    3/20

    SQL> /

    MAX(SAL) MIN(SAL)---------- ----------

    5000 800

    SQL> edWrote file afiedt.buf

    1 SELECT2 Ename,3 MAX(Sal)4* FROM Emp

    SQL> /Ename,*ERROR at line 2:ORA-00937: not a single-group group function

    SQL> edWrote file afiedt.buf

    1 SELECT

    2 Ename,3 MAX(Sal)4 FROM Emp5* GROUP BY Ename

    SQL> /

    ENAME MAX(SAL)---------- ----------ADAMS 1100ALLEN 1600BLAKE 2850CLARK 2450FORD 3000

    JAMES 950JONES 2975KING 5000MARTIN 1250MILLER 1300SCOTT 3000

    ENAME MAX(SAL)---------- ----------SMITH 800TURNER 1500WARD 1250

    14 rows selected.

    SQL> cl scr

    SQL> SELECT COUNT(*)2 FROM Emp;

    COUNT(*)----------

    14

  • 7/29/2019 Common SQL Queries (2)

    4/20

    SQL> edWrote file afiedt.buf

    1 SELECT COUNT(Sal)2* FROM Emp

    SQL> /

    COUNT(SAL)----------

    14

    SQL> edWrote file afiedt.buf

    1 SELECT COUNT(DISTINCT Sal)2* FROM Emp

    SQL> /

    COUNT(DISTINCTSAL)------------------

    12

    SQL> cl scr

    SQL> edWrote file afiedt.buf

    1 SELECT COUNT(*), COUNT(Comm)2* FROM Emp

    SQL> /

    COUNT(*) COUNT(COMM)---------- -----------

    14 4

    SQL> cl scr

    SQL> edWrote file afiedt.buf

    1 SELECT COUNT(*), COUNT(MGR)2* FROM Emp

    SQL> /

    COUNT(*) COUNT(MGR)---------- ----------

    14 13

    SQL> ed

    Wrote file afiedt.buf

    1 SELECT COUNT(*), COUNT(MGR), COUNT(DISTINCT MGR)2* FROM Emp

    SQL> /

    COUNT(*) COUNT(MGR) COUNT(DISTINCTMGR)---------- ---------- ------------------

    14 13 6

  • 7/29/2019 Common SQL Queries (2)

    5/20

    SQL> cl scr

    SQL> SELECT Deptno2 FROM Emp3 ORDER BY Deptno;

    DEPTNO----------

    1010102020202020303030

    DEPTNO----------

    3030

    30

    14 rows selected.

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno2 FROM Emp3* GROUP BY Deptno

    SQL> /

    DEPTNO

    ----------102030

    SQL> SELECT DISTINCT Deptno2 FROM Emp;

    DEPTNO----------

    102030

    SQL> cl scr

    SQL> SELECT Job2 FROM Emp;

    JOB---------PRESIDENTMANAGER

  • 7/29/2019 Common SQL Queries (2)

    6/20

    MANAGERMANAGERSALESMANSALESMANSALESMANCLERKSALESMANANALYSTCLERK

    JOB---------ANALYSTCLERKCLERK

    14 rows selected.

    SQL> edWrote file afiedt.buf

    1 SELECT Job2 FROM Emp3* GROUP BY Job

    SQL> /

    JOB---------ANALYSTCLERKMANAGERPRESIDENTSALESMAN

    SQL> SELECT Empno2 FROM Emp;

    EMPNO----------73697499752175667654769877827788783978447876

    EMPNO----------

    790079027934

    14 rows selected.

    SQL> ed

  • 7/29/2019 Common SQL Queries (2)

    7/20

    Wrote file afiedt.buf

    1 SELECT Empno2 FROM Emp3* GROUP BY Empno

    SQL> /

    EMPNO----------

    73697499752175667654769877827788783978447876

    EMPNO----------

    7900

    79027934

    14 rows selected.

    SQL> cl scr

    SQL> SELECT Deptno, Job2 FROM Emp3 GROUP BY Deptno;

    SELECT Deptno, Job*

    ERROR at line 1:

    ORA-00979: not a GROUP BY expression

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, Job2 FROM Emp3* GROUP BY Deptno, Job

    SQL> /

    DEPTNO JOB---------- ---------

    10 CLERK10 MANAGER10 PRESIDENT20 CLERK20 ANALYST20 MANAGER30 CLERK30 MANAGER30 SALESMAN

  • 7/29/2019 Common SQL Queries (2)

    8/20

    9 rows selected.

    SQL> cl scr

    SQL> SELECT SUM(Sal) FROM Emp;

    SUM(SAL)----------

    29025

    SQL> SELECT Deptno FROM Emp2 GROUP BY Deptno;

    DEPTNO----------

    102030

    SQL> SELECT Deptno, SUM(Sal) FROM Emp2 GROUP BY Deptno;

    DEPTNO SUM(SAL)---------- ----------

    10 875020 1087530 9400

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, SUM(Sal)2 FROM Emp3 WHERE Deptno 204* GROUP BY Deptno

    SQL> /

    DEPTNO SUM(SAL)---------- ----------10 875030 9400

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, SUM(Sal)2 FROM Emp3* GROUP BY Deptno

    SQL> /

    DEPTNO SUM(SAL)---------- ----------

    10 875020 1087530 9400

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, SUM(Sal)

  • 7/29/2019 Common SQL Queries (2)

    9/20

    2 FROM Emp3 GROUP BY Deptno4* ORDER BY SUM(Sal)

    SQL> /

    DEPTNO SUM(SAL)---------- ----------

    10 875030 940020 10875

    SQL> edWrote file afiedt.buf

    1 SELECT SUM(Sal)2 FROM Emp3* GROUP BY Deptno

    SQL> /

    SUM(SAL)----------

    8750108759400

    SQL> cl scr

    SQL> SELECT Deptno2 FROM Emp3 GROUP BY Deptno;

    DEPTNO----------

    102030

    SQL> edWrote file afiedt.buf

    1 SELECT Job2 FROM Emp3* GROUP BY Job

    SQL> /

    JOB---------ANALYSTCLERKMANAGER

    PRESIDENTSALESMAN

    SQL> edWrote file afiedt.buf

    1 SELECT MGR2 FROM Emp3* GROUP BY MGR

    SQL> /

  • 7/29/2019 Common SQL Queries (2)

    10/20

    MGR----------

    756676987782778878397902

    7 rows selected.

    SQL> edWrote file afiedt.buf

    1 SELECT HireDate2 FROM Emp3* GROUP BY HireDate

    SQL> /

    HIREDATE---------17-DEC-80

    20-FEB-8122-FEB-8102-APR-8101-MAY-8109-JUN-8108-SEP-8128-SEP-8117-NOV-8103-DEC-8123-JAN-82

    HIREDATE---------

    09-DEC-8212-JAN-83

    13 rows selected.

    SQL> SELECT Ename, HireDate2 FROM Emp3 ORDER BY HireDate;

    ENAME HIREDATE---------- ---------SMITH 17-DEC-80ALLEN 20-FEB-81

    WARD 22-FEB-81JONES 02-APR-81BLAKE 01-MAY-81CLARK 09-JUN-81TURNER 08-SEP-81MARTIN 28-SEP-81KING 17-NOV-81JAMES 03-DEC-81FORD 03-DEC-81

  • 7/29/2019 Common SQL Queries (2)

    11/20

    ENAME HIREDATE---------- ---------MILLER 23-JAN-82SCOTT 09-DEC-82ADAMS 12-JAN-83

    14 rows selected.

    SQL> cl scr

    SQL> SELECT TO_CHAR(HireDate, 'YYYY') HireYear2 FROm Emp3 GROUP BY TO_CHAR(HireDate, 'YYYY');

    HIRE----1980198119821983

    SQL> edWrote file afiedt.buf

    1 SELECT TO_CHAR(HireDate, 'Month') HireYear2 FROm Emp3* GROUP BY TO_CHAR(HireDate, 'Month')

    SQL> /

    HIREYEAR---------AprilDecemberFebruaryJanuaryJuneMay

    NovemberSeptember

    8 rows selected.

    SQL> edWrote file afiedt.buf

    1 SELECT TO_CHAR(HireDate, 'Month') HireYear2 FROm Emp3 WHERE TO_CHAR(HireDate, 'YYYY') = 19814* GROUP BY TO_CHAR(HireDate, 'Month')

    SQL> /

    HIREYEAR---------AprilDecemberFebruaryJuneMayNovemberSeptember

  • 7/29/2019 Common SQL Queries (2)

    12/20

    7 rows selected.

    SQL> cl scr

    SQL> edWrote file afiedt.buf

    1 SELECT2 TO_CHAR(HireDate, 'YYYY') Year,3 TO_CHAR(HireDate, 'Q') Quarter,4 TO_CHAR(HireDate, 'Month') Month,5 TO_CHAR(HireDate, 'W') Week,6 TO_CHAR(HireDate, 'Day') WeekDay7 FROm Emp8 GROUP BY9 TO_CHAR(HireDate, 'YYYY'),

    10 TO_CHAR(HireDate, 'Q'),11 TO_CHAR(HireDate, 'Month'),12 TO_CHAR(HireDate, 'W'),13* TO_CHAR(HireDate, 'Day')SQL> /

    YEAR Q MONTH W WEEKDAY

    ---- - --------- - ---------1980 4 December 3 Wednesday1981 1 February 3 Friday1981 1 February 4 Sunday1981 2 April 1 Thursday1981 2 June 2 Tuesday1981 2 May 1 Friday1981 3 September 2 Tuesday1981 3 September 4 Monday1981 4 December 1 Thursday1981 4 November 3 Tuesday1982 1 January 4 Saturday

    YEAR Q MONTH W WEEKDAY---- - --------- - ---------1982 4 December 2 Thursday1983 1 January 2 Wednesday

    13 rows selected.

    SQL> cl scr

    SQL> SELECT Deptno, AVG(Sal)2 FROM Emp;

    SELECT Deptno, AVG(Sal)*

    ERROR at line 1:ORA-00937: not a single-group group function

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, AVG(Sal)2 FROM Emp3* GROUP BY Deptno

  • 7/29/2019 Common SQL Queries (2)

    13/20

    SQL> /

    DEPTNO AVG(SAL)---------- ----------

    10 2916.6666720 217530 1566.66667

    SQL> edWrote file afiedt.buf

    1 SELECT Job, AVG(Sal)2 FROM Emp3* GROUP BY Job

    SQL> /

    JOB AVG(SAL)--------- ----------ANALYST 3000CLERK 1037.5MANAGER 2758.33333PRESIDENT 5000SALESMAN 1400

    SQL> edWrote file afiedt.buf

    1 SELECT2 TO_CHAR(HireDate, 'YYYY') Year,3 AVG(Sal)4 FROM Emp5* GROUP BY TO_CHAR(HireDate, 'YYYY')

    SQL> /

    YEAR AVG(SAL)---- ----------1980 800

    1981 2282.51982 21501983 1100

    SQL> edWrote file afiedt.buf

    1 SELECT2 TO_CHAR(HireDate, 'YYYY') Year,3 SUM(Sal)4 FROM Emp5* GROUP BY TO_CHAR(HireDate, 'YYYY')

    SQL> /

    YEAR SUM(SAL)---- ----------1980 8001981 228251982 43001983 1100

    SQL> cl scr

  • 7/29/2019 Common SQL Queries (2)

    14/20

    SQL> SELECT Deptno, MAX(Sal), MIN(Sal)2 FROM Emp3 GROUP BY Deptno;

    DEPTNO MAX(SAL) MIN(SAL)---------- ---------- ----------

    10 5000 130020 3000 80030 2850 950

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, SUM(Sal), AVG(Sal)2 FROM Emp3* GROUP BY Deptno

    SQL> /

    DEPTNO SUM(SAL) AVG(SAL)---------- ---------- ----------

    10 8750 2916.6666720 10875 217530 9400 1566.66667

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, Job, SUM(Sal)2 FROM Emp3* GROUP BY Deptno, Job

    SQL> /

    DEPTNO JOB SUM(SAL)---------- --------- ----------

    10 CLERK 130010 MANAGER 245010 PRESIDENT 5000

    20 CLERK 190020 ANALYST 600020 MANAGER 297530 CLERK 95030 MANAGER 285030 SALESMAN 5600

    9 rows selected.

    SQL> edWrote file afiedt.buf

    1 SELECT Deptno, Job, COUNT(*), SUM(Sal)

    2 FROM Emp3* GROUP BY Deptno, Job

    SQL> /

    DEPTNO JOB COUNT(*) SUM(SAL)---------- --------- ---------- ----------

    10 CLERK 1 130010 MANAGER 1 245010 PRESIDENT 1 500020 CLERK 2 1900

  • 7/29/2019 Common SQL Queries (2)

    15/20

    20 ANALYST 2 600020 MANAGER 1 297530 CLERK 1 95030 MANAGER 1 285030 SALESMAN 4 5600

    9 rows selected.

    SQL> cl scr

    SQL> SELECT2 TO_CHAR(HireDate, 'YYYY') Year,3 Deptno,4 SUM(Sal)5 FROM Emp6 GROUP BY7 TO_CHAR(HireDate, 'YYYY'),8 Deptno;

    YEAR DEPTNO SUM(SAL)---- ---------- ----------1980 20 8001981 10 74501981 20 5975

    1981 30 94001982 10 13001982 20 30001983 20 1100

    7 rows selected.

    SQL> edWrote file afiedt.buf

    1 SELECT2 Deptno,3 TO_CHAR(HireDate, 'YYYY') Year,

    4 TO_CHAR(HireDate, 'FMMonth') Month,5 SUM(Sal)6 FROM Emp7 GROUP BY8 Deptno,9 TO_CHAR(HireDate, 'YYYY'),

    10* TO_CHAR(HireDate, 'FMMonth')11 /

    DEPTNO YEAR MONTH SUM(SAL)---------- ---- --------- ----------

    10 1981 June 245010 1981 November 5000

    10 1982 January 130020 1980 December 80020 1981 April 297520 1981 December 300020 1982 December 300020 1983 January 110030 1981 May 285030 1981 December 95030 1981 February 2850

  • 7/29/2019 Common SQL Queries (2)

    16/20

    DEPTNO YEAR MONTH SUM(SAL)---------- ---- --------- ----------

    30 1981 September 2750

    12 rows selected.

    SQL> cl scr

    SQL> SELECT Deptno, MAX(Sal), MIN(Sal)2 FROM Emp3 WHERE Job = 'CLERK'4 GROUP BY Deptno;

    DEPTNO MAX(SAL) MIN(SAL)---------- ---------- ----------

    10 1300 130020 1100 80030 950 950

    SQL> cl scr

    SQL> SELECT2 Deptno,3 AVG(Sal)

    4 FROM Emp5 GROUP BY Deptno6 HAVING MAX(Sal) > 2900;

    DEPTNO AVG(SAL)---------- ----------

    10 2916.6666720 2175

    SQL> SELECT2 Deptno3 FROM Emp4 /

    DEPTNO----------

    10301020303030303020

    20

    DEPTNO----------

    202010

    14 rows selected.

  • 7/29/2019 Common SQL Queries (2)

    17/20

    SQL> SELECT2 Deptno3 FROM Emp4 GROUP BY Deptno5 /

    DEPTNO----------

    102030

    SQL> SELECT2 Deptno,3 AVG(Sal)4 FROM Emp5 GROUP BY Deptno6 /

    DEPTNO AVG(SAL)---------- ----------

    10 2916.6666720 217530 1566.66667

    SQL> SELECT Deptno, MAX(Sal)2 FROM Emp3 GROUP BY Deptno;

    DEPTNO MAX(SAL)---------- ----------

    10 500020 300030 2850

    SQL> SELECT2 Deptno,

    3 AVG(Sal)4 FROM Emp5 GROUP BY Deptno6 HAVING MAX(Sal) > 2900;

    DEPTNO AVG(SAL)---------- ----------

    10 2916.6666720 2175

    SQL> cl scr

    SQL> SELECT

    2 Job,3 SUM(Sal) Payroll4 FROM Emp5 WHERE Job NOT LIKE 'SALES%'6 GROUP BY Job7 HAVING SUM(Sal) > 50008 ORDER BY SUM(Sal);

    JOB PAYROLL--------- ----------

  • 7/29/2019 Common SQL Queries (2)

    18/20

    ANALYST 6000MANAGER 8275

    SQL> SELECT2 Job3 FROM Emp4 /

    JOB---------PRESIDENTMANAGERMANAGERMANAGERSALESMANSALESMANSALESMANCLERKSALESMANANALYSTCLERK

    JOB---------

    ANALYSTCLERKCLERK

    14 rows selected.

    SQL> SELECT2 Job3 FROM Emp4 WHERE Job NOT LIKE 'SALES%'5 /

    JOB

    ---------PRESIDENTMANAGERMANAGERMANAGERCLERKANALYSTCLERKANALYSTCLERKCLERK

    10 rows selected.

    SQL> SELECT2 Job3 FROM Emp4 WHERE Job NOT LIKE 'SALES%'5 GROUP BY Job6 /

    JOB---------

  • 7/29/2019 Common SQL Queries (2)

    19/20

    ANALYSTCLERKMANAGERPRESIDENT

    SQL> SELECT2 Job,3 SUM(Sal) Payroll4 FROM Emp5 WHERE Job NOT LIKE 'SALES%'6 GROUP BY Job7 /

    JOB PAYROLL--------- ----------ANALYST 6000CLERK 4150MANAGER 8275PRESIDENT 5000

    SQL> cl scr

    SQL> SELECT2 Deptno,

    3 MIN(Sal),4 MAX(Sal)5 FROM Emp6 WHERE Job = 'CLERK'7 GROUP BY Deptno8 HAVING MIN(Sal) < 1000;

    DEPTNO MIN(SAL) MAX(SAL)---------- ---------- ----------

    20 800 110030 950 950

    SQL> SELECT

    2 Deptno,3 SUM(Sal)4 FROM Emp5 GROUP BY Deptno6 HAVING COUNT(Deptno) > 3;

    DEPTNO SUM(SAL)---------- ----------

    20 1087530 9400

    SQL> SELECT2 Deptno,

    3 AVG(Sal),4 SUM(Sal)5 FROM Emp6 GROUP BY Deptno7 HAVING AVG (Sal) > 2500;

    DEPTNO AVG(SAL) SUM(SAL)---------- ---------- ----------

    10 2916.66667 8750

  • 7/29/2019 Common SQL Queries (2)

    20/20

    SQL> SELECT2 Deptno,3 AVG(Sal),4 SUM(Sal)5 FROM Emp6 GROUP BY Deptno;

    DEPTNO AVG(SAL) SUM(SAL)---------- ---------- ----------

    10 2916.66667 875020 2175 1087530 1566.66667 9400

    SQL> SELECT2 Deptno,3 Job,4 SUM(Sal),5 AVG(Sal)6 FROM Emp7 GROUP BY Deptno, Job8 HAVING AVG(Sal) > 2500;

    DEPTNO JOB SUM(SAL) AVG(SAL)---------- --------- ---------- ----------

    10 PRESIDENT 5000 500020 ANALYST 6000 300020 MANAGER 2975 297530 MANAGER 2850 2850

    SQL> edWrote file afiedt.buf

    1 SELECT2 Deptno,3 Job,4 SUM(Sal),5 AVG(Sal)

    6 FROM Emp7 GROUP BY Deptno, Job8* HAVING AVG(Sal) > 2500 AND SUM(Sal) > 2975

    SQL> /

    DEPTNO JOB SUM(SAL) AVG(SAL)---------- --------- ---------- ----------

    10 PRESIDENT 5000 500020 ANALYST 6000 3000

    SQL> spool off