我基本上想做的是:计算属性的差异,然后获取差异最大的行。
所以,这是我尝试过的:
SELECT caller_aor, (end_time - start_time) as duration
FROM cdrs
GROUP BY caller_aor
HAVING duration = (SELECT MAX(end_time - start_time) FROM cdrs);
HAVING 子句中的持续时间会出错,但我不知道我必须在那里做什么。
感谢您的帮助。
最佳答案
您不需要 GROUP BY
和 HAVING
(它们仅在 聚合 列时使用)。
你想要一个简单的WHERE
:
SELECT caller_aor, (end_time - start_time) as duration
FROM cdrs
WHERE (end_time - start_time) = (SELECT MAX(end_time - start_time) FROM cdrs);
关于sql - 使用别名使此 SQL 语句正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109449/