Professional Documents
Culture Documents
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
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>
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>
DEPTNO SUM(SAL)
---------- ---------10
8750
30
9400
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>
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>
HIREYEAR
--------April
December
February
January
June
May
November
September
8 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>
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>
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
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>
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
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;
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;
SQL>
2
3
4
5
6
SELECT
Deptno,
AVG(Sal),
SUM(Sal)
FROM Emp
GROUP BY Deptno;
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