我是Google Big Query(和Stack Overflow)的新手,主要测试Big Query管理精心设计和精心设计的查询的速度.
我在MySQL上运行(缓慢)的繁琐查询时遇到了困难.Big Query抱怨GROUP BY内容.这是起始查询:
SELECT nonstops.term, nonstops.lincat, nonstops.id,
MIN(
(1-((LEAST(1,minusone.catimp / nonstops.catimp) + LEAST(1,minusone.catweb / nonstops.catweb))/2))*
(1-((LEAST(1,minusone.catimp / nonstops.catimp) + LEAST(1,minusone.catweb / nonstops.catweb))/2))*
(1-((LEAST(1,minusone.catimp / nonstops.catimp) + LEAST(1,minusone.catweb / nonstops.catweb))/2))*
(nonstops.catweb * nonstops.catweb * nonstops.catimp / nonstops.fnvweb / nonstops.fnvimp)
)
AS calc FROM nonstops INNER JOIN EACH minusone ON nonstops.lincat = minusone.lincat AND nonstops.term = minusone.term
WHERE nonstops.lincat = 556 GROUP BY nonstops.term, nonstops.lincat
ORDER BY `calc` DESC
Run Code Online (Sandbox Code Playgroud)
请注意,"EACH"会添加到INNER JOIN中,因为两个表都很大.我删除了数据集名称以便于阅读.
GROUP BY旨在仅返回每个术语/ lincat对的连接所做计算的最低值.
我得到的错误是:
(L1:62):表达式"phrase.nonstops.id"不存在于GROUP BY列表中 …