【发布时间】:2021-12-17 00:56:34
【问题描述】:
我正在尝试在 Teradata SQL 中编写嵌套的 TOP + DISTINCT 查询。我的查询如下所示:
SELECT TOP 5
*
FROM
(SELECT DISTINCT k_name.KUNDE_NAME1
FROM DB_DWH_MART_AKM_PLT.VW_F_EVENT f_ev
INNER JOIN DBX_DWH_SBX_AKM_PRD.TB_KUNDE_EKP_NAME_AKTUELL k_name ON f_ev.AUFTRAGGEBER_EKP = k_name.EKP
WHERE f_ev.PROCESS_NO = 1075)
我收到一个错误:
预期类似名称或 Unicode 分隔标识符...介于 ) 和 ;"之间。
我不知道我做错了什么。
DISTINCT 查询会自行正确执行。
【问题讨论】:
-
也许您需要为子查询提供别名,例如
... FROM ( SELECT DISTINCT .... ) AS a -
@KotaMori 你是对的!谢谢!
-
是否需要派生表(子查询)? (我没用过 Teradata,所以不知道。)
-
@jarlh 不幸的是,Teradata 不允许您使用 DISTINCT TOP...
-
没有排序依据,结果是不确定的。运行多次,几乎肯定会得到不同的结果。