我有一个通常会出现的查询
SELECT *
FROM BILL_HISTORY a
JOIN
(
Sel *
from SERVICE_INFO
Qualify Row_Number() OVER (PARTITION BY Service, Product_Code1,
Product_Code2 ORDER BY Effective_Date1 DESC, Effective_Date2 DESC) = 1
) b
ON a.SERVICE = b.SERVICE
预期结果集是过去 6 个月的发票以及来自 SERVICE_INFO 的附加列。如果我在特定服务 ID 上使用 WHERE 子句手动运行此查询,我会收到预期的结果。但是,如果我运行包含在 CREATE VOLATILE TABLE ... AS (SELECT * ... ) 中的相同查询,那么当我查询相同的服务 ID 时,我只会收到该服务的最新发票 ID。
为什么会发生这种情况?如果我将表创建为 perm 或 volatile,结果相同。真正让人头疼的...
编辑:显示在 JOIN 上进行的一般子查询,因为这似乎与问题的原因有关。