当我将它设为子查询时,SQLite Studio 查询的工作方式有所不同

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

我在这里使用 Superstore_test 数据集:https://www.kaggle.com/blurredmachine/superstore-time-series-dataset

我想做一个列来显示下一行的销售额。我将此查询放入,但得到非常奇怪的结果,其中有些行与下一行的销售额匹配,有些则不匹配。奇怪的是,如果我采用子查询并单独使用它,它会返回一个表,其中 next_sales 列完美排列。有人可以从概念上解释一下吗?

查询:

UPDATE Superstore_test
SET next_sales = subquery.next_sales
FROM (
  SELECT order_id, sales, LEAD(sales) OVER (ORDER BY order_id asc) AS next_sales
  FROM Superstore_test
  ) AS subquery
WHERE subquery.sales = Superstore_test.sales
;

我想创建一个新列来显示下一行的销售额。 我明白了:

销售 next_sales
299.94 25.76
25.76 52.59
271.9 45.84
45.84 9.82
9.82 998.82
93.36 66.97600000000001
541.24 106.32
106.32 1323.8999999999999
1323.8999999999999 299.94
sql sqlite subquery window-functions lead
1个回答
0
投票

您应该在

order_id
上将表加入子查询,而不是在
sales
上:

WHERE subquery.order_id = Superstore_test.order_id 
© www.soinside.com 2019 - 2024. All rights reserved.