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

smdnsysy  于 2023-04-30  发布在  SQLite
关注(0)|答案(1)|浏览(137)

我在这里使用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
;

我想创建一个新列,显示下一行的销售额。我得到了这个:
| 销售|下一次销售|
| --------------|--------------|
| 二百九十九点九四|25.76|
| 25.76|五十二点五十九分|
| 二百七十一点九|四十五点八四|
| 四十五点八四|九点八二|
| 9.82 |998.82|
| 九十三点三十六|66.97600000000001|
| 五百四十一点二四|一百零六点三二|
| 一百零六点三二|1323.899999999999999|
| 1323.899999999999|二百九十九点九四|

w8ntj3qf

w8ntj3qf1#

我弄明白了,出于某种原因,当我通过ROWID()订购时,它就能工作。
UPDATE Superstore_test SET next_sales = www.example.com _sales FROM(SELECT order_id,sales,LEAD(sales)OVER(ORDER BY ROWID)AS next_sales FROM Superstore_test)AS subquery WHERE subquery.sales = Superstore_test。销售;

相关问题