MySQL获取子查询值

标签 mysql

我正在尝试计算质心点的距离,这是通过标签总数以及标 checkout 现的即时时间总和来计算的。这就是(tc_sum/cnt)的概念。
然而,子查询上的 SELECT 不允许我获取质心点,因为“中心”尚未计算,所以我无法获取“距离”。
有什么帮助吗?

SELECT cnt, tc_sum, ROUND(tc_sum/cnt) as centr, distance
FROM (
    SELECT SUM(timecode) as tc_sum, count(timecode) as cnt, ABS( centr - '".$timecode."' ) AS distance
    FROM dados d
    WHERE tag = 'donald'
    AND filename = 'donald.mp4'
    AND group_id = '1'
    ) d

最佳答案

SELECT 
 SUM(timecode) as tc_sum, 
 SUM(timecode) as cnt, 
 ABS( SUM(timecode) / SUM(timecode) - '".$timecode."' ) AS distance, 
 ROUND(SUM(timecode) / SUM(timecode)) AS centr
FROM dados d
WHERE tag = 'donald'
 AND filename = 'donald.mp4'
 AND group_id = '1'

查询逐行进行,您不能以这种方式引用别名。你必须再次“重新计算”它们。 “重新计算”这个词并不正确,因为结果并没有真正计算多次。优化器将只计算一次。但别名只有在查询运行后才知道。恐怕我的英语太糟糕了,无法很好地解释它:)

关于MySQL获取子查询值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15134416/

相关文章:

php - 为 symfony 中使用的表构建一个带有连接的 mysql 查询

mysql - ODBC 数据源管理未列出在 MySQL Workbench 5.2.43 中创建的新创建的数据库

php - 用户已经被占用?

mysql - 如何有效地使用窗口函数根据 N 个先前值来决定接下来的 N 个行

mysql - 生成 ER 图并导出到一些交互式 map

mysql - 像这样的 SQL 查询 : "some string" LIKE "%"+column +"%"

mysql - MYSQL中插入数据放在一条最近删除的记录之后

php - 四个小数零并且没有小数点 php

mysql - 使用 Perl DBI->MySQL 时如何检查空集

来自 mysql 的 php 数组