我正在研究收集Microsoft并行数据仓库(PDW)上的一些数据。
查询的一部分如下 -
[HttpPost]
public JsonResult Register(string Name, string Birthday, int Gender)
{
.
.
.
return Json(message);
}
显然查询没有显示任何错误。它运行成功但在除SkewPct之外的所有列中都有正确的数据,只显示零。
请帮我解决这个问题!
答案 0 :(得分:0)
我认为你在分裂期间缺少1.0的乘法如下:
cast((((max(rows)-min(rows))/(sum(rows)*1.0))*100) as float) as SkewPct;
Divide在将其转换为float
之前删除该部分答案 1 :(得分:0)
根据MySQL documentation,FLOAT
不是与CAST
一起使用的有效类型,您应该使用DECIMAL
代替,最大数字(M)和十进制( D)作为两个论点:
生成DECIMAL值。如果给出可选的M和D值, 它们指定最大位数(精度)和 小数点后的位数(刻度)。
默认情况下,值将四舍五入为int
,小数点后0。看看下面的查询:
SELECT CAST((((127-23)/541)*100) as DECIMAL), CAST(19.2237 AS DECIMAL(7, 5))
第一列产生19
而第二列产生19.2237
。
这是 SQL Fiddle 。