看板 Statistics 關於我們 聯絡資訊
[軟體程式類別]:SAS [程式問題]:資料處理 [軟體熟悉度]:熟悉 [問題敘述]: 我有一段程式碼有時候跑不過, 有時候跑得過... (看起來應該是程式碼的問題導致執行資源耗光了,跑不動) 但裡面僅有proc sql,沒有其他用法。 本來懷疑是因為抓商品名稱的括號沒有括好, 導致抓到所有年的資料所以跑不動, 但檢查了一遍, 應該是有括好。 請教各位大神, 這程式碼有沒有會導致SAS執行不易的情形呢? 求超市2019年1月至當年12月之夏季時令水果(須包含冰品及手搖飲)之顧客購買清單 http://i.imgur.com/CAC8ubj.jpg
--檔案大小-- 品項類型總檔:小,幾萬筆抓出約百筆 商品總檔:中,幾十萬筆抓出約千筆 販售明細檔:大,一年千萬筆,抓出約幾十萬筆(檔案內有很多年) 操作步驟: 1.從品項類型總檔抓出商品代碼為A的商品類型 2.再從商品總檔抓出步驟1得出的商品類型,列出商品名稱 3.最後利用販售明細檔抓出所需要商品名稱在2019年的顧客溝買清單 [程式範例]: %let ym=購買年月 between 201901 and 201912; PROC SQL; CREATE TABLE 顧客購買清單 AS ( select distinct 顧客姓名,購買日期 from 販售明細檔 where &ym. and (isnull(商品名稱,'') in (select distinct 商品名稱 from 商品總檔 where 商品類型 in (select distinct 商品類型 from 品項類型總檔 where 代碼='A')) or (isnull(商品名稱,'')in ('冰品','手搖飲'))) group by 顧客姓名,購買日期 ); QUIT; 圖片版: http://i.imgur.com/H7eXTaF.jpg
再次感謝各位大大的協助:) ----- Sent from JPTT on my Google Pixel 6. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.139.105 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1657797466.A.CD4.html
west1996: 如果確定是資源耗用問題,一定是死在顧客明細檔,我會選 07/14 21:22
west1996: 擇兩個sub query做完後的資料落地,然後顧客明細檔查詢 07/14 21:22
west1996: 的部分用data step+hash object的方法處理掉 07/14 21:22
linda841004: 目前我是拆成兩個proc sql,的確可以執行, 07/15 08:52
linda841004: 但因為我“自己覺得”文中的程式,沒有找到錯誤 07/15 08:52
linda841004: 所以真的很疑惑,為何這樣無法跑??? 07/15 08:52
west1996: 如果hang住,應該就是out of memory吧 07/15 21:34
haolihy: 一直巢狀where就很危險 寫成left join會好一點 07/16 13:57
linda841004: 感謝樓上兩位大大的回復, 07/17 10:51
linda841004: 未來會避免此種寫法QQ 07/17 10:51
linda841004: 既傷電腦又傷心(?) 07/17 10:51