2

我有一个 select 语句,它根据不同的标准显示多个计数

我想将计数传递给用户定义函数 (UDF) 以进行一些计算

例如

SELECT 
player, 
COUNT(IF(action=1,1,NULL)) AS tot_bullseye, 
COUNT(IF(action=2,1,NULL)) AS tot_twentys

UDF(tot_bullseye, tot_twentys)
4

1 回答 1

1

不,永远不能在SELECTorWHERE子句中访问同一查询的列别名。您必须重复表达式,或使用子查询:

SELECT player, tot_bullseye, tot_twentys, UDF(tot_bullseye, tot_twentys)
FROM (SELECT player,
             COUNT(IF(action=1,1,NULL)) AS tot_bullseye,
             COUNT(IF(action=2,1,NULL)) AS tot_twentys
      ...) AS subq
于 2014-08-25T20:30:50.033 回答