SQL Select Last Date for Each Store
我有一个数据库,其中每一行都包含一个 Site_No、Product_code、Stock_Date 和 Stock_Qty。对于单个站点
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT * FROM ( SELECT Site_No, Product_code, Stock_Date, Stock_Qty, ROW_NUMBER() OVER (PARTITION BY Site_No ORDER BY Stock_Date DESC) rn FROM Stock_Levels WHERE Product_code = 1234 )A WHERE rn = 1 |
在 Teradata 中有一个很好的标准 SQL 扩展,用于过滤窗口聚合函数的结果,
1 2 3 4 5 6 7 8 9 10 | SELECT Site_No, Product_code, Stock_Date, Stock_Qty FROM Stock_Levels WHERE Product_code = 1234 QUALIFY ROW_NUMBER() OVER (PARTITION BY Site_No -- for each site ORDER BY Stock_Date DESC) = 1 -- get the highest date |