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

问题描述 投票:0回答:2

嗨,任何人都可以帮我解决这个问题,如何在where语句中添加total_pallet_id> = 80。

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

sql where column-alias
2个回答
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

0
投票

您需要使用子查询或CTE:

with t as (
      < your query here >
     )
select t.*
from t
where total_pallet_id >= 80;
© www.soinside.com 2019 - 2024. All rights reserved.