我正在计算每个“name”的数量,并在嵌套查询中按id进行排序。我所做的只是将计数(名称)放入select。但是,代码返回一个错误,即它无法将列“name”识别为内部语句中的from。我的代码是:
SELECT
User_ID,
COUNT(Name) AS Total,
SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS EN,
FROM (
SELECT
User_ID,
CASE
WHEN Language in ('EN', 'English') THEN 'EN'
WHEN Language in ('MY', 'Malay') THEN 'MY' ELSE Language
END AS Language,
FROM 'table'
GROUP BY User_ID, Language
)
GROUP BY User_ID
我应该修复什么来删除错误?
2条答案
按热度按时间zvokhttg1#
你真的不需要
Name
列来计算东西。这应该是正确的:我不知道bigquery,但是关系数据库需要别名子查询,所以我将您的别名改为
T
.后面还有一个多余的逗号
SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS EN,
tgabmvqs2#
您需要确保在子查询中添加“name”列。
很明显,一旦你加上名字,你也必须按名字分组。
试试这个。