You are on page 1of 20

SQL> cl scr

SQL> SELECT
2 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>
2
3
4
5
6

SELECT
'SATISH KUMAR YELLANKI' OrgName,
TRANSLATE('SATISH KUMAR YELLANKI',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'1234567890!@#$%^&*()-=_+;,.') EncryptedName
FROM DUAL;

ORGNAME
ENCRYPTEDNAME
--------------------- --------------------SATISH KUMAR YELLANKI (1)9(8 !-#1* ;5@@1$!9
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7*
SQL>

SELECT
'(1)9(8 !-#1* ;5@@1$!9' EncryptName,
TRANSLATE('(1)9(8 !-#1* ;5@@1$!9',
'1234567890!@#$%^&*()-=_+;,.',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
) DecryptedName
FROM DUAL
/

ENCRYPTNAME
DECRYPTEDNAME
--------------------- --------------------(1)9(8 !-#1* ;5@@1$!9 SATISH KUMAR YELLANKI
SQL> cl scr
SQL> SELECT
2 AVG(Sal), AVG(DISTINCT Sal)
3 FROM Emp;

AVG(SAL) AVG(DISTINCTSAL)
---------- ---------------2073.21429
2064.58333
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
AVG(Comm)
FROM Emp
/

AVG(COMM)
---------550
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
AVG(Comm),
AVG(NVL(Comm, 0))
FROM Emp
/

AVG(COMM) AVG(NVL(COMM,0))
---------- ---------------550
157.142857
SQL> cl scr
SQL>
2
3
4

SELECT
SUM(Sal),
SUM(DISTINCT Sal)
FROM Emp;

SUM(SAL) SUM(DISTINCTSAL)
---------- ---------------29025
24775
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
SUM(Comm), AVG(Comm)
FROM Emp
/

SUM(COMM) AVG(COMM)
---------- ---------2200
550
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 MAX(Sal), MIN(Sal)
3* FROM Emp

SQL> /
MAX(SAL) MIN(SAL)
---------- ---------5000
800
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 Ename,
3 MAX(Sal)
4* FROM Emp
SQL> /
Ename,
*
ERROR at line 2:
ORA-00937: not a single-group group function
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
Ename,
MAX(Sal)
FROM Emp
GROUP BY Ename
/

ENAME
MAX(SAL)
---------- ---------ADAMS
1100
ALLEN
1600
BLAKE
2850
CLARK
2450
FORD
3000
JAMES
950
JONES
2975
KING
5000
MARTIN
1250
MILLER
1300
SCOTT
3000
ENAME
MAX(SAL)
---------- ---------SMITH
800
TURNER
1500
WARD
1250
14 rows selected.
SQL> cl scr
SQL> SELECT COUNT(*)
2 FROM Emp;
COUNT(*)
---------14

SQL> ed
Wrote file afiedt.buf
1 SELECT COUNT(Sal)
2* FROM Emp
SQL> /
COUNT(SAL)
---------14
SQL> ed
Wrote file afiedt.buf
1 SELECT COUNT(DISTINCT Sal)
2* FROM Emp
SQL> /
COUNT(DISTINCTSAL)
-----------------12
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1 SELECT COUNT(*), COUNT(Comm)
2* FROM Emp
SQL> /
COUNT(*) COUNT(COMM)
---------- ----------14
4
SQL> cl scr
SQL> ed
Wrote 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

SQL> cl scr
SQL> SELECT Deptno
2 FROM Emp
3 ORDER BY Deptno;
DEPTNO
---------10
10
10
20
20
20
20
20
30
30
30
DEPTNO
---------30
30
30
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Deptno
FROM Emp
GROUP BY Deptno
/

DEPTNO
---------10
20
30
SQL> SELECT DISTINCT Deptno
2 FROM Emp;
DEPTNO
---------10
20
30
SQL> cl scr
SQL> SELECT Job
2 FROM Emp;
JOB
--------PRESIDENT
MANAGER

MANAGER
MANAGER
SALESMAN
SALESMAN
SALESMAN
CLERK
SALESMAN
ANALYST
CLERK
JOB
--------ANALYST
CLERK
CLERK
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Job
FROM Emp
GROUP BY Job
/

JOB
--------ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN
SQL> SELECT Empno
2 FROM Emp;
EMPNO
---------7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
EMPNO
---------7900
7902
7934
14 rows selected.
SQL> ed

Wrote file afiedt.buf


1
2
3*
SQL>

SELECT Empno
FROM Emp
GROUP BY Empno
/

EMPNO
---------7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
EMPNO
---------7900
7902
7934
14 rows selected.
SQL> cl scr
SQL> SELECT Deptno, Job
2 FROM Emp
3 GROUP BY Deptno;
SELECT Deptno, Job
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Deptno, Job


FROM Emp
GROUP BY Deptno, Job
/

DEPTNO
---------10
10
10
20
20
20
30
30
30

JOB
--------CLERK
MANAGER
PRESIDENT
CLERK
ANALYST
MANAGER
CLERK
MANAGER
SALESMAN

9 rows selected.
SQL> cl scr
SQL> SELECT SUM(Sal) FROM Emp;
SUM(SAL)
---------29025
SQL> SELECT Deptno FROM Emp
2 GROUP BY Deptno;
DEPTNO
---------10
20
30
SQL> SELECT Deptno, SUM(Sal) FROM Emp
2 GROUP BY Deptno;
DEPTNO SUM(SAL)
---------- ---------10
8750
20
10875
30
9400
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT Deptno, SUM(Sal)


FROM Emp
WHERE Deptno <> 20
GROUP BY Deptno
/

DEPTNO SUM(SAL)
---------- ---------10
8750
30
9400
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Deptno, SUM(Sal)


FROM Emp
GROUP BY Deptno
/

DEPTNO SUM(SAL)
---------- ---------10
8750
20
10875
30
9400
SQL> ed
Wrote file afiedt.buf
1 SELECT Deptno, SUM(Sal)

2
3
4*
SQL>

FROM Emp
GROUP BY Deptno
ORDER BY SUM(Sal)
/

DEPTNO SUM(SAL)
---------- ---------10
8750
30
9400
20
10875
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT SUM(Sal)
FROM Emp
GROUP BY Deptno
/

SUM(SAL)
---------8750
10875
9400
SQL> cl scr
SQL> SELECT Deptno
2 FROM Emp
3 GROUP BY Deptno;
DEPTNO
---------10
20
30
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Job
FROM Emp
GROUP BY Job
/

JOB
--------ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT MGR
FROM Emp
GROUP BY MGR
/

MGR
---------7566
7698
7782
7788
7839
7902
7 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT HireDate
FROM Emp
GROUP BY HireDate
/

HIREDATE
--------17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
01-MAY-81
09-JUN-81
08-SEP-81
28-SEP-81
17-NOV-81
03-DEC-81
23-JAN-82
HIREDATE
--------09-DEC-82
12-JAN-83
13 rows selected.
SQL> SELECT Ename, HireDate
2 FROM Emp
3 ORDER BY HireDate;
ENAME
---------SMITH
ALLEN
WARD
JONES
BLAKE
CLARK
TURNER
MARTIN
KING
JAMES
FORD

HIREDATE
--------17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
01-MAY-81
09-JUN-81
08-SEP-81
28-SEP-81
17-NOV-81
03-DEC-81
03-DEC-81

ENAME
---------MILLER
SCOTT
ADAMS

HIREDATE
--------23-JAN-82
09-DEC-82
12-JAN-83

14 rows selected.
SQL> cl scr
SQL> SELECT TO_CHAR(HireDate, 'YYYY') HireYear
2 FROm Emp
3 GROUP BY TO_CHAR(HireDate, 'YYYY');
HIRE
---1980
1981
1982
1983
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT TO_CHAR(HireDate, 'Month') HireYear


FROm Emp
GROUP BY TO_CHAR(HireDate, 'Month')
/

HIREYEAR
--------April
December
February
January
June
May
November
September
8 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT TO_CHAR(HireDate, 'Month') HireYear


FROm Emp
WHERE TO_CHAR(HireDate, 'YYYY') = 1981
GROUP BY TO_CHAR(HireDate, 'Month')
/

HIREYEAR
--------April
December
February
June
May
November
September

7 rows selected.
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8
9
10
11
12
13*
SQL>

SELECT
TO_CHAR(HireDate,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
FROm Emp
GROUP BY
TO_CHAR(HireDate,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
/

YEAR
---1980
1981
1981
1981
1981
1981
1981
1981
1981
1981
1982

Q
4
1
1
2
2
2
3
3
4
4
1

MONTH
--------December
February
February
April
June
May
September
September
December
November
January

W
3
3
4
1
2
1
2
4
1
3
4

WEEKDAY
--------Wednesday
Friday
Sunday
Thursday
Tuesday
Friday
Tuesday
Monday
Thursday
Tuesday
Saturday

YEAR
---1982
1983

Q
4
1

MONTH
--------December
January

W
2
2

WEEKDAY
--------Thursday
Wednesday

'YYYY') Year,
'Q') Quarter,
'Month') Month,
'W') Week,
'Day') WeekDay
'YYYY'),
'Q'),
'Month'),
'W'),
'Day')

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> ed
Wrote file afiedt.buf
1 SELECT Deptno, AVG(Sal)
2 FROM Emp
3* GROUP BY Deptno

SQL> /
DEPTNO AVG(SAL)
---------- ---------10 2916.66667
20
2175
30 1566.66667
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Job, AVG(Sal)


FROM Emp
GROUP BY Job
/

JOB
AVG(SAL)
--------- ---------ANALYST
3000
CLERK
1037.5
MANAGER 2758.33333
PRESIDENT
5000
SALESMAN
1400
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
TO_CHAR(HireDate, 'YYYY') Year,
AVG(Sal)
FROM Emp
GROUP BY TO_CHAR(HireDate, 'YYYY')
/

YEAR AVG(SAL)
---- ---------1980
800
1981
2282.5
1982
2150
1983
1100
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
TO_CHAR(HireDate, 'YYYY') Year,
SUM(Sal)
FROM Emp
GROUP BY TO_CHAR(HireDate, 'YYYY')
/

YEAR SUM(SAL)
---- ---------1980
800
1981
22825
1982
4300
1983
1100
SQL> cl scr

SQL> SELECT Deptno, MAX(Sal), MIN(Sal)


2 FROM Emp
3 GROUP BY Deptno;
DEPTNO MAX(SAL) MIN(SAL)
---------- ---------- ---------10
5000
1300
20
3000
800
30
2850
950
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Deptno, SUM(Sal), AVG(Sal)


FROM Emp
GROUP BY Deptno
/

DEPTNO SUM(SAL) AVG(SAL)


---------- ---------- ---------10
8750 2916.66667
20
10875
2175
30
9400 1566.66667
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Deptno, Job, SUM(Sal)


FROM Emp
GROUP BY Deptno, Job
/

DEPTNO
---------10
10
10
20
20
20
30
30
30

JOB
SUM(SAL)
--------- ---------CLERK
1300
MANAGER
2450
PRESIDENT
5000
CLERK
1900
ANALYST
6000
MANAGER
2975
CLERK
950
MANAGER
2850
SALESMAN
5600

9 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

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


FROM Emp
GROUP BY Deptno, Job
/

DEPTNO
---------10
10
10
20

JOB
COUNT(*) SUM(SAL)
--------- ---------- ---------CLERK
1
1300
MANAGER
1
2450
PRESIDENT
1
5000
CLERK
2
1900

20
20
30
30
30

ANALYST
MANAGER
CLERK
MANAGER
SALESMAN

2
1
1
1
4

6000
2975
950
2850
5600

9 rows selected.
SQL> cl scr
SQL>
2
3
4
5
6
7
8

SELECT
TO_CHAR(HireDate, 'YYYY') Year,
Deptno,
SUM(Sal)
FROM Emp
GROUP BY
TO_CHAR(HireDate, 'YYYY'),
Deptno;

YEAR
DEPTNO SUM(SAL)
---- ---------- ---------1980
20
800
1981
10
7450
1981
20
5975
1981
30
9400
1982
10
1300
1982
20
3000
1983
20
1100
7 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8
9
10*
11

SELECT
Deptno,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
SUM(Sal)
FROM Emp
GROUP BY
Deptno,
TO_CHAR(HireDate,
TO_CHAR(HireDate,
/

DEPTNO
---------10
10
10
20
20
20
20
20
30
30
30

YEAR
---1981
1981
1982
1980
1981
1981
1982
1983
1981
1981
1981

'YYYY') Year,
'FMMonth') Month,

'YYYY'),
'FMMonth')

MONTH
SUM(SAL)
--------- ---------June
2450
November
5000
January
1300
December
800
April
2975
December
3000
December
3000
January
1100
May
2850
December
950
February
2850

DEPTNO YEAR MONTH


SUM(SAL)
---------- ---- --------- ---------30 1981 September
2750
12 rows selected.
SQL> cl scr
SQL>
2
3
4

SELECT Deptno, MAX(Sal), MIN(Sal)


FROM Emp
WHERE Job = 'CLERK'
GROUP BY Deptno;

DEPTNO MAX(SAL) MIN(SAL)


---------- ---------- ---------10
1300
1300
20
1100
800
30
950
950
SQL> cl scr
SQL>
2
3
4
5
6

SELECT
Deptno,
AVG(Sal)
FROM Emp
GROUP BY Deptno
HAVING MAX(Sal) > 2900;

DEPTNO AVG(SAL)
---------- ---------10 2916.66667
20
2175
SQL>
2
3
4

SELECT
Deptno
FROM Emp
/

DEPTNO
---------10
30
10
20
30
30
30
30
30
20
20
DEPTNO
---------20
20
10
14 rows selected.

SQL>
2
3
4
5

SELECT
Deptno
FROM Emp
GROUP BY Deptno
/

DEPTNO
---------10
20
30
SQL>
2
3
4
5
6

SELECT
Deptno,
AVG(Sal)
FROM Emp
GROUP BY Deptno
/

DEPTNO AVG(SAL)
---------- ---------10 2916.66667
20
2175
30 1566.66667
SQL> SELECT Deptno, MAX(Sal)
2 FROM Emp
3 GROUP BY Deptno;
DEPTNO MAX(SAL)
---------- ---------10
5000
20
3000
30
2850
SQL>
2
3
4
5
6

SELECT
Deptno,
AVG(Sal)
FROM Emp
GROUP BY Deptno
HAVING MAX(Sal) > 2900;

DEPTNO AVG(SAL)
---------- ---------10 2916.66667
20
2175
SQL> cl scr
SQL>
2
3
4
5
6
7
8

SELECT
Job,
SUM(Sal) Payroll
FROM Emp
WHERE Job NOT LIKE 'SALES%'
GROUP BY Job
HAVING SUM(Sal) > 5000
ORDER BY SUM(Sal);

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

ANALYST
MANAGER
SQL>
2
3
4

6000
8275

SELECT
Job
FROM Emp
/

JOB
--------PRESIDENT
MANAGER
MANAGER
MANAGER
SALESMAN
SALESMAN
SALESMAN
CLERK
SALESMAN
ANALYST
CLERK
JOB
--------ANALYST
CLERK
CLERK
14 rows selected.
SQL>
2
3
4
5

SELECT
Job
FROM Emp
WHERE Job NOT LIKE 'SALES%'
/

JOB
--------PRESIDENT
MANAGER
MANAGER
MANAGER
CLERK
ANALYST
CLERK
ANALYST
CLERK
CLERK
10 rows selected.
SQL>
2
3
4
5
6

SELECT
Job
FROM Emp
WHERE Job NOT LIKE 'SALES%'
GROUP BY Job
/

JOB
---------

ANALYST
CLERK
MANAGER
PRESIDENT
SQL>
2
3
4
5
6
7

SELECT
Job,
SUM(Sal) Payroll
FROM Emp
WHERE Job NOT LIKE 'SALES%'
GROUP BY Job
/

JOB
PAYROLL
--------- ---------ANALYST
6000
CLERK
4150
MANAGER
8275
PRESIDENT
5000
SQL> cl scr
SQL>
2
3
4
5
6
7
8

SELECT
Deptno,
MIN(Sal),
MAX(Sal)
FROM Emp
WHERE Job = 'CLERK'
GROUP BY Deptno
HAVING MIN(Sal) < 1000;

DEPTNO MIN(SAL) MAX(SAL)


---------- ---------- ---------20
800
1100
30
950
950
SQL>
2
3
4
5
6

SELECT
Deptno,
SUM(Sal)
FROM Emp
GROUP BY Deptno
HAVING COUNT(Deptno) > 3;

DEPTNO SUM(SAL)
---------- ---------20
10875
30
9400
SQL>
2
3
4
5
6
7

SELECT
Deptno,
AVG(Sal),
SUM(Sal)
FROM Emp
GROUP BY Deptno
HAVING AVG (Sal) > 2500;

DEPTNO AVG(SAL) SUM(SAL)


---------- ---------- ---------10 2916.66667
8750

SQL>
2
3
4
5
6

SELECT
Deptno,
AVG(Sal),
SUM(Sal)
FROM Emp
GROUP BY Deptno;

DEPTNO AVG(SAL) SUM(SAL)


---------- ---------- ---------10 2916.66667
8750
20
2175
10875
30 1566.66667
9400
SQL>
2
3
4
5
6
7
8

SELECT
Deptno,
Job,
SUM(Sal),
AVG(Sal)
FROM Emp
GROUP BY Deptno, Job
HAVING AVG(Sal) > 2500;

DEPTNO
---------10
20
20
30

JOB
SUM(SAL) AVG(SAL)
--------- ---------- ---------PRESIDENT
5000
5000
ANALYST
6000
3000
MANAGER
2975
2975
MANAGER
2850
2850

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6
7
8*
SQL>

SELECT
Deptno,
Job,
SUM(Sal),
AVG(Sal)
FROM Emp
GROUP BY Deptno, Job
HAVING AVG(Sal) > 2500 AND SUM(Sal) > 2975
/

DEPTNO
---------10
20

JOB
SUM(SAL) AVG(SAL)
--------- ---------- ---------PRESIDENT
5000
5000
ANALYST
6000
3000

SQL> spool off

You might also like