簡體   English   中英

為什么我的 SQL 別名不被識別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM