使用where子句中包含over(partition)的列别名

时间:2018-05-23 02:27:09

标签: sql where column-alias

您可以在此查询中帮助我,如何在where语句中添加 total_pallet_id> = 80

感谢您的帮助,非常感谢。

2 个答案:

答案 0 :(得分:0)

您需要使用子查询或CTE:

with t as (
      < your query here >
     )
select t.*
from t
where total_pallet_id >= 80;

答案 1 :(得分:0)

SELECT * FROM
(
    select To_Char(c.last_event_date,'MM/DD/YYYY') as lastDate, 
    a.phase, a.kitting_code, a.carton_id || a.kitting_code as StorePalletID,
    SUM(COUNT(*)) OVER(PARTITION BY a.carton_id ||  a.kitting_code) AS 
    total_pallet_id,
    c.cass_id,c.last_event_date
    from ods.carton_master a join ods.carton b on  a.carton_id = b.carton_id 
    join ods.cass_event_master_vw c on b.cass_id = c.cass_id 
    where a.carton_id like 'S%' 
    and a.complete = 'Y'
    and c.last_event_date >= '2018-04-14 15:13:50' AND c.last_event_date < 
    '2018-05-22 15:13:50'
    Group by lastDate, a.phase, a.kitting_code, a.carton_id || a.kitting_code, 
    c.cass_id,c.last_event_date        
) t
WHERE total_pallet_id>=80
ORDER BY lastDate,  phase, kitting_code