You are on page 1of 6

1

2
3*
SQL>

select count(*)
from emp
where 1=2
/

COUNT(*)
--------0
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

select count(*)
from emp
having 1=2
/

no rows selected
SQL> ed
Wrote file afiedt.buf
1 select job,min(sal) "Losal",max(sal) "Hisal",sum(sal)
"Tolsal",count(*) "Noe"
2 from emp
3* group by job
SQL> /
JOB
Losal
Hisal
Tolsal
Noe
--------- --------- --------- --------- --------CLERK
800
1300
4150
4
SALESMAN
1250
1600
5600
4
PRESIDENT
5000
5000
5000
1
MANAGER
2450
2975
8275
3
ANALYST
3000
3000
6000
2
SQL> ed
Wrote file afiedt.buf
1 select job,min(sal) "Losal",max(sal) "Hisal",sum(sal)
"Tolsal",count(*) "Noe"
2 from emp
3 group by job
4* having sum(sal)>5000
5 /
JOB
Losal
Hisal
Tolsal
Noe
--------- --------- --------- --------- --------SALESMAN
1250
1600
5600
4
MANAGER
2450
2975
8275
3
ANALYST
3000
3000
6000
2
SQL> clear screen
SQL> /
JOB
Losal
Hisal
Tolsal
Noe
--------- --------- --------- --------- --------SALESMAN
1250
1600
5600
4
MANAGER
2450
2975
8275
3
ANALYST
3000
3000
6000
2

SQL> clear screen


SQL> ed
Wrote file afiedt.buf
1 select empno,ename,deptno
2 from emp
3* having deptno=10
SQL> /
having deptno=10
*
ERROR at line 3:
ORA-00979: not a GROUP BY expression
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
5

select empno,ename,deptno
from emp
group by deptno,empno,ename
having deptno=10
/

EMPNO
--------7782
7839
7934

ENAME
DEPTNO
---------- --------CLARK
10
KING
10
MILLER
10

SQL> ed
Wrote file afiedt.buf
1 select *
2 from emp
3 group by *
4* having deptno=10
SQL> /
group by *
*
ERROR at line 3:
ORA-00936: missing expression
SQL>
SQL>
2
3
4
5

clear screen
select deptno,job,count(*) noe,sum(sal) tolsal
from emp
where deptno in(10,20)
group by deptno,job
/

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

JOB
NOE
TOLSAL
--------- --------- --------CLERK
2
1900
MANAGER
1
2975
PRESIDENT
1
5000
CLERK
1
1300
MANAGER
1
2450
ANALYST
2
6000

6 rows selected.

SQL> ed
Wrote file afiedt.buf
1 select deptno,job,count(*) noe,sum(sal) tolsal
2 from emp
3 where deptno in(10,20)
4 group by deptno,job
5 having sum(sal)>5000
6* order by sal desc
7 /
order by sal desc
*
ERROR at line 6:
ORA-00979: not a GROUP BY expression
SQL> ed
Wrote file afiedt.buf
1 select deptno,job,count(*) noe,sum(sal) tolsal
2 from emp
3 where deptno in(10,20)
4 group by deptno,job
5 having sum(sal)>5000
6* order by sum(sal) desc
7 \/
8
SQL>
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
7

select deptno,job,count(*) noe,sum(sal) tolsal


from emp
where deptno in(10,20)
group by deptno,job
having sum(sal)>5000
order by sum(sal) desc
/

DEPTNO JOB
NOE
TOLSAL
--------- --------- --------- --------20 ANALYST
2
6000
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
7

select deptno,job,count(*) noe,sum(sal) tolsal


from emp
where deptno in(10,20)
group by deptno,job
having sum(sal)>5000
order by sum(sal) desc
/

DEPTNO JOB
NOE
TOLSAL
--------- --------- --------- --------20 ANALYST
2
6000
SQL> clear screen
SQL> ed
Wrote file afiedt.buf

1
2
3*
4

select max(max(sal)),min(max(sal))
from emp
group by deptno
/

MAX(MAX(SAL)) MIN(MAX(SAL))
------------- ------------5000
2850
SQL> ed
Wrote file afiedt.buf
1 select min(max(max(sal))),min(max(sal))
2 from emp
3* group by deptno
SQL> /
select min(max(max(sal))),min(max(sal))
*
ERROR at line 1:
ORA-00935: group function is nested too deeply
SQL> ed
Wrote file afiedt.buf
1
2
3*
4

select max(sum(sal)),min(avg(sal))
from emp
group by job
/

MAX(SUM(SAL)) MIN(AVG(SAL))
------------- ------------8275
1037.5
SQL> ed
Wrote file afiedt.buf
1 select min(max(sum(sal))),min(avg(sal))
2 from emp
3* group by job
SQL> /
select min(max(sum(sal))),min(avg(sal))
*
ERROR at line 1:
ORA-00935: group function is nested too deeply
SQL> clear screen
SQL> ed
Wrote file afiedt.buf
1* select max(1000,2000,3000) from dual
SQL> /
select max(1000,2000,3000) from dual
*
ERROR at line 1:
ORA-00909: invalid number of arguments
SQL> ed

Wrote file afiedt.buf


1* select GREATEST(1000,'2000','3000') from dual
2 /
GREATEST(1000,'2000','3000')
---------------------------3000
SQL> ed
Wrote file afiedt.buf
1* select GREATEST(1000,'2000',to_number('3,400','9G999')) from dual
2 /
GREATEST(1000,'2000',TO_NUMBER('3,400','9G999'))
-----------------------------------------------3400
SQL> ed
Wrote file afiedt.buf
1* select GREATEST(1000,'2000',to_number('3,400','9G999')) from dual
2
SQL>
SQL> clear screen
SQL> ed
Wrote file afiedt.buf
1* SELECT GREATEST (SIEBEL,CODD,SCOTT)
2
SQL>
SQL> clear screen
SQL> SELECT GREATEST ('SIEBEL','CODD','SCOTT')

FROM DUAL;

FROM DUAL;

GREATE
-----SIEBEL
SQL>
SQL>
SQL> ed
Wrote file afiedt.buf
1* SELECT GREATEST ('10-dec-15','15-jan-15')
2 /

FROM DUAL

GREATEST(
--------15-jan-15
SQL> ed
Wrote file afiedt.buf
1* SELECT GREATEST ('10-dec-15','15-jan-15')
2
SQL>
SQL> ed
Wrote file afiedt.buf
1

FROM DUAL

SELECT GREATEST (to_date('10-dec-15','dd-mon-yy'),

2* '15-jan-15')
3 /

FROM DUAL

GREATEST(
--------10-DEC-15
SQL> ed
Wrote file afiedt.buf
1 SELECT GREATEST (to_date('10-dec-15','dd-mon-yy'),
2* '15-01-15') FROM DUAL
SQL> /
'15-01-15') FROM DUAL
*
ERROR at line 2:
ORA-01843: not a valid month
SQL> ed
Wrote file afiedt.buf
1 SELECT GREATEST (to_date('10-dec-15','dd-mon-yy'),
2* to_date('15-01-15','dd-mm-yy')) FROM DUAL
3 /
GREATEST(
--------10-DEC-15
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 least(to_date('10-dec-15','dd-mon-yy'),'15-jan-15')
3* FROM DUAL
4 /
LEAST(TO_
--------15-JAN-15
SQL> ed
Wrote file afiedt.buf
1
2
3*
4
SQL>
SQL>
SQL>

SELECT
least(to_date('10-dec-15','dd-mon-yy'),'15-jan-15')
FROM DUAL
clear screen
exit

You might also like