Monday, February 29, 2016

Hi friends today we will discuss about LEAD & LAG Functions..

Lead:

       This lead function will work like order by in sql with more flavours ..

select * from emp order by sal asc;


EMPNOENAMEJOBMGRJOIN_DATESALCOMMDEPTNO
7369SMITHCLERK790217-DEC-80 00:00:0080020
7900JAMESCLERK769803-DEC-81 00:00:0095030
7876ADAMSCLERK778812-JAN-83 00:00:00110020
7654MARTINSALESMAN769828-SEP-81 00:00:001250140030
7521WARDSALESMAN769822-FEB-81 00:00:00125050030
7934MILLERCLERK778223-JAN-82 00:00:00130010
7844TURNERSALESMAN769808-SEP-81 00:00:001500030
7499ALLENSALESMAN769820-FEB-81 00:00:00160030030
7782CLARKMANAGER783909-JUN-81 00:00:00245010
7698BLAKEMANAGER783901-MAY-81 00:00:00285030
7566JONESMANAGER783902-APR-81 00:00:00297520
7902FORDANALYST756603-DEC-81 00:00:00300020
7788SCOTTANALYST756609-DEC-82 00:00:00300020
783911rajPRESIDENT17-NOV-81 00:00:00500010


Lead function:

select empno,ename,sal,Lead(sal,0) over (order by sal)  as lead_sal from emp;

O/p:

EMPNO ENAME SAL Lead_sal
7369 SMITH 800 800
7900 JAMES 950 950
7876 ADAMS 1100 1100
7654 MARTIN 1250 1250
7521 WARD 1250 1250
7934 MILLER 1300 1300
7844 TURNER 1500 1500
7499 ALLEN 1600 1600
7782 CLARK 2450 2450
7698 BLAKE 2850 2850
7566 JONES 2975 2975
7902 FORD 3000 3000
7788 SCOTT 3000 3000
7839 11raj 5000 5000


ex2:

   select empno,ename,sal,Lead(sal,1) over (order by sal) from emp;
1 record is in lead..
     
EMPNO ENAME SAL Lead_sal
7369 SMITH 800 950
7900 JAMES 950 1100
7876 ADAMS 1100 1250
7654 MARTIN 1250 1250
7521 WARD 1250 1300
7934 MILLER 1300 1500
7844 TURNER 1500 1600
7499 ALLEN 1600 2450
7782 CLARK 2450 2850
7698 BLAKE 2850 2975
7566 JONES 2975 3000
7902 FORD 3000 3000
7788 SCOTT 3000 5000
7839 11raj 5000



Lag Function:

    select empno,ename,sal,lag(sal,1) over (order by sal)  as lag_sal from emp;

1 record in lag..

EMPNO ENAME SAL Lag_sal
7369 SMITH 800
7900 JAMES 950 800
7876 ADAMS 1100 950
7654 MARTIN 1250 1100
7521 WARD 1250 1250
7934 MILLER 1300 1250
7844 TURNER 1500 1300
7499 ALLEN 1600 1500
7782 CLARK 2450 1600
7698 BLAKE 2850 2450
7566 JONES 2975 2850
7902 FORD 3000 2975
7788 SCOTT 3000 3000
7839 11raj 5000 3000


Thank u..!!!!
Hi friends today we will discuss about LISTAGG in ORACLE..

SYNTAX:

LISTAGG(<Column Name>,”) WITHIN GROUP(ORDER BY <Column Name1>,<Column Name2>)

Example:

CREATE TABLE EMPLOYE
(
ENO VARCHAR2(10),
DNO VARCHAR2(10),
ENAME VARCHAR2(20),
SALARY VARCHAR2(10)
);

SELECT * FROM EMPLOYE;

ENO DNO ENAME SALARY
101 10 RAJESH 18000
102 10 SURESH 28000
103 11 NARAYANA 18000
104 11 KIRAN 18000

From this we need the department wise employee names as in single row with
separated by ‘; ’ .

SELECT LISTAGG(ENAME,’; ‘) WITHIN GROUP(ORDER BY DNO) as EMPLOYEE NAMES,  DNO  AS Dept.No.
FROM   EMPLOYE   GROUP   BY   DNO;

Result:

EMPLOYEE NAMES Dept.No.
RAJESH; SURESH 10
KIRAN; NARAYANA          11           
Good Morning friends today we will discuss about the concept of COALESCE in ORACLE..

COALESCE returns the first non-null expr in the expression list. You must specify at least two expressions. If all occurrences of expr evaluate to null, then the function returns null.

Syntax: COALESCE (expr1, expr2);

This is equivalent to

CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END;

Example 1:

Select  COALESCE (1*2,3+4) FROM DUAL;

Output  1 :

2

Example 2:

Select  COALESCE (NULL,3+4) FROM DUAL;

Output 2:

7

Thankyou...!!!!

LEVEL in Oracle


DECODE in Oracle


CASE in Oracle..


Read data from csv in R Programming

Read a data set from csv file.. x <- read.csv(file.choose(),header=TRUE) here x is the R data set vaiable.