您的位置:首页 > 数据库 > Oracle

ORACLE SQL常用用法

2016-02-18 16:25 525 查看
1)行转列聚合

select trunc(f.month_wid / 100) as YEAR_WID,

       f.emp_wid,

       f.prodcat_wid,

       sum(decode(MOD(f.month_wid, 100), 1, f.call_num / f.totalcall_sr)) as JAN_VALUE,

       sum(decode(MOD(f.month_wid, 100), 2, f.call_num / f.totalcall_sr)) as FEB_VALUE,

       sum(decode(MOD(f.month_wid, 100), 3, f.call_num / f.totalcall_sr)) as MAR_VALUE,

       sum(decode(MOD(f.month_wid, 100), 4, f.call_num / f.totalcall_sr)) as APR_VALUE,

       sum(decode(MOD(f.month_wid, 100), 5, f.call_num / f.totalcall_sr)) as MAY_VALUE,

       sum(decode(MOD(f.month_wid, 100), 6, f.call_num / f.totalcall_sr)) as JUN_VALUE,

       sum(decode(MOD(f.month_wid, 100), 7, f.call_num / f.totalcall_sr)) as JUL_VALUE,

       sum(decode(MOD(f.month_wid, 100), 8, f.call_num / f.totalcall_sr)) as AUG_VALUE,

       sum(decode(MOD(f.month_wid, 100), 9, f.call_num / f.totalcall_sr)) as SEP_VALUE,

       sum(decode(MOD(f.month_wid, 100), 10, f.call_num / f.totalcall_sr)) as OCT_VALUE,

       sum(decode(MOD(f.month_wid, 100), 11, f.call_num / f.totalcall_sr)) as NOV_VALUE,

       sum(decode(MOD(f.month_wid, 100), 12, f.call_num / f.totalcall_sr)) as DEC_VALUE

  from WC_PROD_CONCALL_PRIOR_F f

  where f.int_org_wid=2148
 group by trunc(f.month_wid / 100), f.emp_wid, f.prodcat_wid

 季度:select trunc((MOD(trunc(20141201/100),100)-1)/3)+1 from dual

2)TO_CHAR函数

      TO_CHAR(SYSDATE -1,'YYYYMM')

      TO_CHAR(ADD_MONTHS(SYSDATE -1, -1), 'YYYYMM')

      TO_CHAR((SYSDATE-1), 'DD') <= 7

3)分析函数

SELECT DISTINCT CF.MONTH_WID,

       CF.OWNER_POSTN_WID,

       CF.X_SR_WID,

       --CF.X_PROD_LN_WID,

       PRODCAT.Row_Wid as PRODCAT_WID,

      -- cf.prod_wid,

       ORG.ROW_WID AS INT_ORG_WID,

       COUNT(DISTINCT CF.ROW_WID) OVER(PARTITION BY CF.MONTH_WID,CF.OWNER_POSTN_WID,CF.X_SR_WID,ORG.ROW_WID,PRODCAT.Row_Wid) AS CALL_NUM,

       COUNT(DISTINCT CF.ROW_WID) OVER(PARTITION BY CF.MONTH_WID,CF.OWNER_POSTN_WID,CF.X_SR_WID,ORG.ROW_WID)AS TOTALCALL_SR

  FROM W_CALL_CON_F    CF,

       W_LOV_D         PRI,

       WC_SUB_TGTCLS_D SUB,

       W_ACTIVITY_F    F,

       W_LOV_D         LOV,

       W_INT_ORG_D  ORG,

       W_PRODUCT_D PROD, 

       WC_PRODCAT_D PRODCAT

 WHERE CF.PRIORITY_WID = PRI.ROW_WID

   AND PRI.R_TYPE = 'RANK'

   AND PRI.VAL IN ('1', '2')

   AND CF.X_SUB_TGTCLS_WID = SUB.ROW_WID

   AND SUB.X_TARGET_CLASS IN ('Level 1', 'Level 2', 'Level 3')

   AND CF.PAR_INTEGRATION_ID = F.INTEGRATION_ID

   AND F.X_KPI_FLG_WID = LOV.ROW_WID

   AND LOV.NAME = 'Y'

   AND CF.X_VIS_BU_ID=ORG.INTEGRATION_ID

   --AND F.INTEGRATION_ID='1-B7EYH4'

   AND CF.MONTH_WID=TO_CHAR(SYSDATE -1,'YYYYMM')

   AND CF.PROD_WID=PROD.ROW_WID

   AND PROD.PRODUCT_TYPE_CODE='Product'

   AND PROD.PRODCAT_WID=PRODCAT.ROW_WID
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: