Home » SQL & PL/SQL » SQL & PL/SQL » Display Employee details with min & max hired date (Oracle 11g)
Display Employee details with min & max hired date [message #645202] Sun, 29 November 2015 10:37 Go to next message
arifs3738
Messages: 39
Registered: November 2015
Location: India
Member
Q) List the earliest date and the latest date on which someone was hired?
SQL:
SELECT MIN(HIREDATE), MAX(HIREDATE)
FROM EMP;


O/P:
MIN(HIREDATE) MAX(HIREDATE)
17-DEC-1980 00:00:00 14-OCT-2015 00:00:00

But i want to see the details also of min & maX hired emp.

SELECT a.*, a.hiredate FROM EMP a
INNER JOIN
(SELECT hiredate, MIN(HIREDATE), MAX(HIREDATE)
FROM EMP group by hiredate) b
ON a.HIREDATE=b.HIREDATE;


I wanted help in the above query???
Re: Display Employee details with min & max hired date [message #645203 is a reply to message #645202] Sun, 29 November 2015 10:58 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
MIN(HIREDATE) & MAX(HIREDATE) need to be placed in WHERE clause
Re: Display Employee details with min & max hired date [message #645204 is a reply to message #645202] Sun, 29 November 2015 11:09 Go to previous messageGo to next message
Solomon Yakobson
Messages: 3273
Registered: January 2010
Location: Connecticut, USA
Senior Member
arifs3738 wrote on Sun, 29 November 2015 11:37
But i want to see the details also of min & maX hired emp.


Then don't use aggregation. Use analytics:

SQL> with t as (
  2             select  e.*,
  3                     dense_rank() over(order by hiredate nulls last) drnk,
  4                     dense_rank() over(order by hiredate desc nulls last) rdrnk
  5               from emp e
  6            )
  7  select  *
  8    from  t
  9    where drnk = 1
 10       or rdrnk = 1
 11  /

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO       DRNK      RDRNK
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------- ----------
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20         13       1
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20          1      13

SQL>


SY.
Re: Display Employee details with min & max hired date [message #645206 is a reply to message #645204] Sun, 29 November 2015 11:29 Go to previous messageGo to next message
arifs3738
Messages: 39
Registered: November 2015
Location: India
Member
Thank You Solomon for the beautiful response.

I worked and got some queries working with same output.

SELECT A.* , ' earliest hire date emp' FROM emp A WHERE hiredate IN 
((SELECT MIN(hiredate) FROM emp),(SELECT MAX(hiredate) FROM emp));
SELECT A.* , ' earliest hire date emp' FROM emp A WHERE hiredate IN (SELECT 
MIN(hiredate) FROM emp)
UNION ALL
SELECT A.*, 'latest hire date emp' FROM emp A WHERE hiredate IN (SELECT 
MAX(hiredate) FROM emp);


AND

Select a.* , ' earliest hire date emp' from emp a where hiredate in (select 
min(hiredate) from emp Union Select max(hiredate) from emp);



THANKS A LOT CHAMP Razz
Re: Display Employee details with min & max hired date [message #645207 is a reply to message #645206] Sun, 29 November 2015 11:40 Go to previous message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
compare EXPLAIN PLAN for each of the queries to see which is most efficient
Previous Topic: sql - transpose
Next Topic: Query execute time versus fetch time
Goto Forum:
  


Current Time: Fri Apr 19 01:18:04 CDT 2024