我正在尝试计算质心点的距离,该距离是通过标签总数以及标签出现的即时时间的总和来计算的。这就是(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 - MySQL获取子查询值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15134416/

10-12 19:04