【发布时间】:2021-11-29 12:10:03
【问题描述】:
我正在尝试以特定(且简单)的顺序将记录插入表中,因为该表有一个 IDENTITY 列(例如 MyTbl (ID INT IDENTITY(1,1), Sale_Date DATE, Product_ID INT, Sales INT )。
查询很简单(这只是一个简化的例子):
INSERT INTO MyTbl (Sale_Date, Product_ID, Sales)
SELECT Sale_Date, Product_ID,COUNT(*) as sales
FROM Fact_tbl
GROUP BY Sale_Date,Product_ID
ORDER BY Sale_Date,Product_ID
预期的行为是,当我选择身份 ID 列的最高值时,我应该会看到最新的 Sale_Date。然而,这种情况并非如此。表中 ID 列的顺序与日期无关。更糟糕的是,如果我重新创建表并一次又一次地运行相同的 INSERT 语句,我每次都会为相同的数据获得不同的插入顺序。 即使我封装查询并将 ORDER BY 放入或取出外壳,我也会遇到这种情况。
我从未在任何其他 SQL 平台中看到过这种行为。这是 Snowflake 中的预期行为吗?
【问题讨论】:
-
要检查的 SELECT 查询是什么?
-
这真的是一个简单的检查:SELECT * FROM MyTbl ORDER BY ID DESC LIMIT 10
-
您的
Product_ID是否有可能被存储为TEXT而不是NUMERIC?
标签: snowflake-cloud-data-platform