如何从所有记录中选择特定的记录集

时间:2012-12-05 12:25:06

标签: sql oracle11g

我有一个查询,它给了我所有记录。现在我想检查所有记录中这三个条件之间有多少记录

  1. 小于等于250,000
  2. 在500,000
  3. 之间250,000
  4. 500,000及以上
  5. 我总共得到6列。通过减去Credit Dist dt - App Received dt列,我得到working days1,减去LO Issued - appr_dec我得到working days2。在确定哪些记录处于哪种条件之后,我必须在每个条件中统计所有应用程序,并将应用程序的计数除以working day1working day2。如何确定哪个应用程序处于哪种状态并继续进行?

    查询很长,所以我尝试将虚拟查询放在一个想法上。

    select LOSA_APP.app_ref_no AS "App.Ref.No.",
           LOSA_EXP_SUMM_Z.group_exp AS "Group Exposure Amount",
           column AS "App Received dt",
           column AS "Credit Dist dt",
           column AS "appr_dec",
           column AS "LO Issued" 
    from 
        losa_app LOSA_APP
    INNER JOIN
        code_branch CODE_BRANCH
    ON
        LOSA_APP.attend_branch = CODE_BRANCH.branch_id
    .... -- more joins
    where
        LOSA_APP.app_status in ('A','R')
    and
        .....  --other conditions
    

    对于条件,我必须检查LOSA_EXP_SUMM_Z.group_expLOSA_EXP_SUMM_Z.group_exp <= 250,000LOSA_EXP_SUMM_Z.group_exp between 250,000 and 500,000LOSA_EXP_SUMM_Z.group_exp >= 500,000

    由于

1 个答案:

答案 0 :(得分:0)

您可能需要按该列/条件对输出进行分区,例如:第1组 - 小于等于250,000,第2组...,第3组......然后您可以在组内订购。尝试使用RANK和其他分析函数。

选择*来自 (     选择empno,deptno,sal          ,RANK()OVER(由sal执行deptno命令)rnk     来自scott.emp ) /