SELECT Y/X as Z
FROM (
SELECT
(count(county) FROM `cleanup_site_list_2011` WHERE county='kings') as X,
(count(county) FROM `cleanup_site_list_2011` WHERE county='kings' AND people != 0) as Y
FROM `cleanup_site_list_2011`
) as innertable
在上面的示例中,两个“SELECT ...”表示任何描述的嵌套查询(X 和 Y 将是整数)。当我尝试使用此语句时出现错误
#1054 - Unknown column 'Y' in 'field list'
如何让 MySQL 识别我创建的列的名称?另外,一旦数学计算出来,我将如何使除法结果为 float ?还是它会自动执行此操作?
最佳答案
处理此问题的一种方法是在子查询中为列提供“自定义名称”,然后在周围查询中使用这些自定义名称:
SELECT
Y/X as Z -- moved to outer query
FROM (
SELECT
(...) as X, -- assign custom names in subquery
(...) as Y,
FROM `table`
) as innertable;
对于第二个问题:
mysql> select 4 / 3;
+--------+
| 4 / 3 |
+--------+
| 1.3333 |
+--------+
1 row in set (0.00 sec)
这能回答吗? (MySQL 5)
更多信息 here .
关于mysql - 如何让 MySQL 识别自定义列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7906232/