WITH list_dedup (Company, duplicate_count) AS
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY Company ORDER BY Email) AS 'RowNumber'
FROM
Travels
)
错误:
消息 102,第 15 级,状态 1,第 7 行
')' 附近的语法不正确。
您缺少公共表表达式的最终选择(在 CTE 的定义之后):
WITH list_dedup (Company,duplicate_count) As
(
select *,
ROW_NUMBER() OVER (PARTITION BY Company ORDER by Email) As "RowNumber"
From Travels
)
select *
from list_dedup;
但这不会,因为 CTE 被定义为具有两列(通过
WITH list_dedup (Company,duplicate_count)
),但您在 CTE 内的选择返回至少三列(公司、电子邮件、行号)。您需要调整 CTE 的列定义,或者完全忽略它:
WITH list_dedup As
(
select *,
ROW_NUMBER() OVER (PARTITION BY Company ORDER by Email) As "RowNumber"
From Travels
)
select *
from list_dedup;
当定义列列表时,内部选择中的
As "RowNumber"
也没有意义,因为 CTE 定义定义了列名称。在 CTE 内部使用的任何别名在其外部都将不可见(如果在 with .. (...) as
部分中指定了 CTE 列)。
您刚刚设置您的 CTE - 现在您需要使用它!
WITH list_dedup (Company, duplicate_count) AS
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY Company ORDER BY Email) AS 'RowNumber'
FROM
Travels
)
SELECT *
FROM list_dedup
;WITH list_dedup (Company, duplicate_count) AS
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY Company ORDER BY Email) AS 'RowNumber'
FROM
Travels
)
SELECT * FROM list_dedup