sql - 将表达式转换为数据类型 int 以进行基本统计时发生算术溢出错误

标签 sql sql-server azure azure-sql-database

我正在尝试执行一个计算平均值、最小值、最大值和计数的基本查询。

SELECT
 MIN(column) as min,
 MAX(column) as max,
 AVG(column) as avg,
 count(*) as count
FROM database.dbo.table;

其中列的类型为int,数据库为azure sql 标准。

作为返回,我收到一个错误:“将表达式转换为数据类型 int 时出现算术溢出错误”

为什么 int 首先会出现强制转换为 int 的问题?我可以添加一些东西来使其适用于所有数字类型吗?

最佳答案

尝试使用count_big像这样:

SELECT
 MIN(column) as min,
 MAX(column) as max,
 AVG(column) as avg,
 count_big(*) as count
FROM database.dbo.table;

您还尝试将列转换为 BIGINT,如下所示:

 SELECT
 MIN(CAST(column as BIGINT)) as min,
 MAX(CAST(column as BIGINT)) as max,
 AVG(CAST(column as BIGINT)) as avg,
 count_big(*) as count
FROM database.dbo.table;

关于sql - 将表达式转换为数据类型 int 以进行基本统计时发生算术溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29521942/

相关文章:

sql - SQL Server 中的 Merge 和 Merge join 是否相同?

c# - 如何在不使用 Azure SignalR 服务的情况下从 Azure Function 发送 SignalR 消息

php - 正确的mysql查询来查询一个表并为另一个表查询提供信息

sql - ASP.NET MVC - CaSTLe ActiveRecord - 显示 SQL 查询

mysql - 如何在不使用 MySql 中的 Group_Concat 函数的情况下显示记录

azure - 监视 Azure 函数的成功计数

python - 为什么 registerTempTable 从数据框中删除一些行?

sql - 在 SQL Server 中执行时捕获对象依赖关系

sql-server - 如何找到最慢的查询

sql-server - BCP实用程序: How to get number of record imported