我在这里使用 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 |
您应该在
order_id
上将表加入子查询,而不是在 sales
上:
WHERE subquery.order_id = Superstore_test.order_id