[英]Why is my SQL aliasing not being recognized?
這可能是一個非常簡單的問題,但我沒有看到這里的問題。 我正在嘗試自學 SQL,並且正在做一個使用子查詢和別名的實驗。 當我嘗試輸入以下查詢(進入 BigQuery)時,我收到一條錯誤消息“無法識別的名稱:cast1 at [3:1]”,即使我將 COUNT 行復制到外部查詢中,它仍然存在。 顯然,我不了解這里的別名,但我不確定我哪里出錯了。 我將感謝更有經驗的 SQL 用戶提供有關如何改進的任何幫助,在此先感謝您!
SELECT
cast__1_,
cast1 + cast2 + cast3 + cast4 AS num_films,
(
SELECT
cast__1_,
COUNT (cast__1_) AS cast1,
COUNT (cast__2_) AS cast2,
COUNT (cast__3_) AS cast3,
COUNT (cast__4_) AS cast4,
FROM `dataproject1-351413.movie_data.movies` AS movies
WHERE
cast__1_ IS NOT Null
GROUP BY
cast__1_
)
FROM `dataproject1-351413.movie_data.movies`
GROUP BY
cast__1_
(預期的結果是兩列,將每個演員與數據集中的電影數量配對,以防查詢中不清楚)
您的查詢結構似乎有點傾斜,您需要將聚合查詢視為派生表,例如:
SELECT cast__1_, cast1 + cast2 + cast3 + cast4 AS num_films
from (
SELECT
cast__1_,
COUNT (cast__1_) AS cast1,
COUNT (cast__2_) AS cast2,
COUNT (cast__3_) AS cast3,
COUNT (cast__4_) AS cast4,
FROM `dataproject1-351413`.movie_data.movies
WHERE cast__1_ IS NOT Null
GROUP BY cast__1_
)t;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.