Mysql SQL:select语句中对聚合函数的算术运算显示错误信息
我正在处理一个查询,以便在Microsoft并行数据仓库(PDW)上收集一些数据 查询的一部分如下所示-- 显然,查询没有显示任何错误。它成功运行,但所有列中的数据都正确,SkewPct除外,它只显示零Mysql SQL:select语句中对聚合函数的算术运算显示错误信息,mysql,sql-server,parallel-data-warehouse,Mysql,Sql Server,Parallel Data Warehouse,我正在处理一个查询,以便在Microsoft并行数据仓库(PDW)上收集一些数据 查询的一部分如下所示-- 显然,查询没有显示任何错误。它成功运行,但所有列中的数据都正确,SkewPct除外,它只显示零 请帮我解决这个问题 我认为您在除法过程中缺少1.0的乘法,如下所示: cast((((max(rows)-min(rows))/(sum(rows)*1.0))*100) as float) as SkewPct; 除法在将分数转换为浮点之前删除分数我认为除法过程中缺少1.0的乘法,如下所示:
请帮我解决这个问题 我认为您在除法过程中缺少1.0的乘法,如下所示:
cast((((max(rows)-min(rows))/(sum(rows)*1.0))*100) as float) as SkewPct;
除法在将分数转换为浮点之前删除分数我认为除法过程中缺少1.0的乘法,如下所示:
cast((((max(rows)-min(rows))/(sum(rows)*1.0))*100) as float) as SkewPct;
根据MySQL,“除法”在将分数转换为浮点之前删除分数,float
不是用于CAST
的有效类型,您应该使用DECIMAL
,最大数字(M)和DECIMAL(D)作为tw参数:
生成一个十进制值。如果给出可选的M和D值,
它们指定了最大位数(精度)和
小数点后的位数(刻度)
默认情况下,该值将四舍五入为int
,小数点为0。请查看以下查询:
SELECT CAST((((127-23)/541)*100) as DECIMAL), CAST(19.2237 AS DECIMAL(7, 5))
第一列的结果是19
,而第二列的结果是19.2237
以下是MySQL的,FLOAT
不是有效的类型,不能与CAST
一起使用,您应该使用DECIMAL
,最大数字(M)和DECIMAL(D)作为tw参数:
生成一个十进制值。如果给出可选的M和D值,
它们指定了最大位数(精度)和
小数点后的位数(刻度)
默认情况下,该值将四舍五入为int
,小数点为0。请查看以下查询:
SELECT CAST((((127-23)/541)*100) as DECIMAL), CAST(19.2237 AS DECIMAL(7, 5))
第一列的结果是19
,而第二列的结果是19.2237
这是MySQL还是sql server?MySQL还是sql server?