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
付近に正しくない構文 ')'。
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内のあなたの選択は少なくともの3つの列(会社、電子メール、rownumber)を返します。あなたは、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は表示されません(の場合の場合はCTE列がwith .. (...) as
部分に指定されています)。
あなたはちょうどを設定しましたあなたの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
; AS list_dedup(会社、duplicate_count)WITH( ASメールBY会社ORDER BY *、 ROW_NUMBER()OVER(PARTITION)を選択して 'RowNumber関数' 旅行 FROM)
SELECT * FROM list_dedup
CTEの列の数(および種類)は、実際のクエリで選択したものと一致する必要があります。 –
定義の後にCTEを使用してステートメントを作成する必要があります。例えば'WITH list_dedup(Company、duplicate_count)AS(...)SELECT * FROM list_dedup' –