sql - 使用别名使此 SQL 语句正确

标签 sql postgresql alias

我基本上想做的是:计算属性的差异,然后获取差异最大的行。

所以,这是我尝试过的:

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 BYHAVING(它们仅在 聚合 列时使用)。

你想要一个简单的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/

相关文章:

git - 如何配置 Github Desktop 以在 OSX 中从命令行运行?

mysql - 如何在忽略空值的情况下对行进行分组?

sql - 按列对分组而不考虑它们的顺序

用于计算权重的 MySQL 查询

postgresql - PostGIS 是否会在插入 WKT 时自动转换?

python - 手动安排Azure中Postgresql的备份?

bash - 在 find -exec 中使用别名

Hibernate 使用带有条件的别名

SQL 按行值分隔列(透视)

ruby-on-rails - Rails、PostgreSQL 和历史触发器