mysql - 如何将 mysql 查询更改为 postgresql 查询

标签 mysql postgresql

当我在 postgresql 中执行 mysql 查询时,它显示错误。我在 google 中搜索了该错误,但它们对我不起作用。请建议我解决。

下面是mysql查询:

SELECT caller_id_number,
       caller_id_name,
       dialed_number,
       count(*) NumberOfCalls,
       round(sum(duration_seconds)/60,2) CallDurationMin
FROM kazoo_cdr_rpt
WHERE cdr_date_time > '20-08-2017'
    AND cdr_date_time < 24-08-2017
    AND length(caller_id_number) < 5
    AND direction = "outbound"
GROUP BY dialed_number;

当我在 postgres 中执行上述查询时,它收到的错误为

 round(sum(durati...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

最佳答案

如果您的持续时间秒为 varchar,则必须将其转换为数字:

SELECT caller_id_number,
       caller_id_name,
       dialed_number,
       count(*) NumberOfCalls,
       round(sum(CAST(duration_seconds as numeric))/60,2) CallDurationMin
FROM kazoo_cdr_rpt
WHERE cdr_date_time > '20-08-2017'
    AND cdr_date_time < '24-08-2017'
    AND length(caller_id_number) < 5
    AND direction = "outbound"
GROUP BY caller_id_number, caller_id_name, dialed_number;

关于mysql - 如何将 mysql 查询更改为 postgresql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46191165/

相关文章:

更新时MySQL错误1206

sql - 然后使用前 10 个查询来搜索与其关联的所有记录

mysql - Sql-server 到 MySQL 的迁移问题 - 最大行大小不能超过 65,535 字节

mysql - 如何处理应用程序级别的 "Value ' 0000-00-0 0' can not be represented as java.sql.Timestamp"错误?

mysql - mysql查询单列总时间

mysql - 为什么汉字在MySQL和Perl中显示异常?

postgresql - 使用字符串引用列/表名称?

更新 UFW 后 PostgreSQL 仍然能够建立连接

python-3.x - 用于为数据库容器创建数据库脚本的 Kubernetes helm

mysql - 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql