作者dofu1943 (那就念吧~~)
看板Statistics
標題[程式] sas proc sql
時間Fri Oct 19 22:18:05 2018
[軟體程式類別]:
SAS
[程式問題]:
資料處理
[軟體熟悉度]:
新手
[問題敘述]:
本來想要自己創資料來測試
但因為實際使用的資料量很大
我在想可能看不出差異
想請教一下版友
以下兩種寫法會否影響到加總的結果
[程式範例]:
第1種
PROC SQL ;
CREATE table B AS
SELECT year, sex ,yearlevel , sum(fee) as s_fee
, count ( distinct id ) as c_did
FROM A
where diftime<=11
GROUP BY year, sex ,yearlevel
order by year, sex ,yearlevel
;
QUIT ;
第2種
PROC SQL ;
CREATE table C AS
SELECT year, sex ,yearlevel , sum(fee) as s_fee
FROM A
where diftime<=11
GROUP BY year, sex ,yearlevel
order by year, sex ,yearlevel
;
QUIT ;
有的id在不同年度(year)會出現在2次
有的id則可能出現5次,出現的次數不完全相等
兩種的寫法差別只在於第1種有把count id的計算丟進去
原本只是因為懶得分兩次計算id的筆數
所以才一起寫進去
結果
第1種算出來的fee加總會略高於第2種
我不懂為什麼
也不知道哪個對
而且還有更奇怪的事情
就是
一開始先執行第2種程式,得到比較小的fee加總時
如果再執行第1種程式,得到比較大的fee加總後
此時再執行一次第2種程式的話
結果出來的fee加總會變成跟第1種一樣,也就是比較大的fee加總
我知道很離奇
但真的不知道是發生什麼事
程式執行時也沒有出現驚嘆號和錯誤
不知道有沒有版友遇過相同經驗
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.53.140
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1539958687.A.00C.html
※ 編輯: dofu1943 (36.228.53.140), 10/19/2018 22:19:30
※ 編輯: dofu1943 (36.228.53.140), 10/19/2018 22:22:32
1F:推 west1996: 看起來應該要是一樣的答案才對,是每一組的fee都略高嗎 10/19 23:44
2F:→ west1996: 還是特定某一組的fee略高?再仔細檢查一下log檔,應該有 10/19 23:45
3F:→ west1996: 什麼訊息沒有注意到 10/19 23:45
4F:推 liton: 應該是原始數據的問題,檢查看看id是不是有空值之類的問題 10/21 17:42