mysql - 如何让 MySQL 识别自定义列名?

标签 mysql sql math floating-point

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/

相关文章:

java - 奇怪的 Java 数学执行

python - 如何找到数组中值的负虚部然后将其变为正值?

php - 使用 MySQL 调试 PDO 准备的查询

php - 如果投票为 0,则投票结果查询未获取候选人

php - 过滤并发送联系人数据库

sql - 使用sql/plsql,如何找出文本使用的字符集?

php - 如何从表中获取所有数据(包括表 ID)

java - 如何在 Java 中将长计算字符串分离为可用计算

php - 在 Smarty 模板中运行 MySQL 查询

sql - 过程创建所需的简单初学者 Oracle PL/SQL 帮助/修复