求和整数会产生小数

时间:2017-10-25 15:05:37

标签: sas proc-sql

我试图使用PROC SQL来计算不同年龄组和县的人口数量(即整数):

 @if (Request.IsAuthenticated)
 {
   <li><a href="#">Hello, @ViewData["FullName"] !</a></li>
   <li><a href="@Url.Action("Logout", "Account")">Log Out</a></li>
 }
 else
 {
   <li><a href="@Url.Action("Login", "Account")">Log In</a></li>
 }

我遇到的问题是给出的结果不是整数: Results

更糟糕的是,舍入通常会产生与原始原始值不匹配的计数。例如,最后一个条目 - 该年龄组/县的原始人口价值实际上是4,但是在对PROC SQL生成的值进行四舍五入后,它就是3。

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

尽管您有这样的想法,但您的数据中很可能并没有真正的数字。格式可以隐藏小数,但它们不会更改实际值,除了没有分组/等的直接选择语句外,SQL不会保留格式。

参见例如:

data my_data;
input age_grp pop_count;
format pop_count 4.0;
datalines;
1 1234.54
2 1624.43
1 14.35
2 1234.11
1 888.88
2 768.48
;;;;
run;

proc sql;
  select age_grp, sum(pop_count) as pop_sum
    from my_data
    group by age_grp;
quit;

并且age_grp 2并没有将它添加到与未添加的相同内容(舍入值似乎加起来为3626)。