SQL 按行减去成本

SQL Subtracting Cost by Rows

提问人:TadeG 提问时间:11/15/2023 最后编辑:TadeG 更新时间:11/15/2023 访问量:32

问:

我有一个数据集

--City        Brand     Cost       Date
--Nashville   A         $100       11/14/2023
--Nashville   A         $125       11/15/2023

我想看看

--City        Brand     Difference  Latest Date
--Nashville   A         $25         11/15/2023

提前致谢!!

RankedCombination

分手结束 行号 <= 1

SQL 日期 选择 排名

评论

0赞 Sergey 11/15/2023
请指定您使用的数据库
0赞 Littlefoot 11/15/2023
如果有第 3 行包含例如 Nashville, A, $200, 11/16/2023 怎么办?还是只有一行?还是每个 [城市、品牌] 组合 100 行?
0赞 June7 11/15/2023
这回答了你的问题吗?如何获得列字段的两行之间的差异?
0赞 TadeG 11/15/2023
因此,这将是第二个到最晚日期的最晚日期。如果有 100 行,则采用今天的日期减去昨天的日期,或者今天的日期减去三天前的日期,以较新的为准

答:

0赞 Khalil 11/15/2023 #1

以下 sql 在 Oracle 中给出了所需的结果:

select city,brand,difference,datecol 
from (select rownum as r,city,brand,
      cost - lead(cost) over (order by datecol desc) as difference, 
      datecol 
      from t1 order by datecol desc)
where r=1;

评论

0赞 TadeG 11/15/2023
我收到错误“ORDER BY 子句在视图、内联函数、派生表、子查询和公共表表达式中无效 select city, brand, difference, newdate from (select row_num as r, city, brand, cost 0 lead(cost) over (order by newdate desc) as difference, newdate where #T_temp order by newdate) where are=1