作者linda841004 (水凝結)
看板Statistics
標題[程式] 程式執行導致資源耗用問題
時間Thu Jul 14 19:17:44 2022
[軟體程式類別]: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://webptt.com/m.aspx?n=bbs/Statistics/M.1657797466.A.CD4.html
1F:推 west1996: 如果確定是資源耗用問題,一定是死在顧客明細檔,我會選 07/14 21:22
2F:→ west1996: 擇兩個sub query做完後的資料落地,然後顧客明細檔查詢 07/14 21:22
3F:→ west1996: 的部分用data step+hash object的方法處理掉 07/14 21:22
4F:→ linda841004: 目前我是拆成兩個proc sql,的確可以執行, 07/15 08:52
5F:→ linda841004: 但因為我“自己覺得”文中的程式,沒有找到錯誤 07/15 08:52
6F:→ linda841004: 所以真的很疑惑,為何這樣無法跑??? 07/15 08:52
7F:推 west1996: 如果hang住,應該就是out of memory吧 07/15 21:34
8F:推 haolihy: 一直巢狀where就很危險 寫成left join會好一點 07/16 13:57
9F:→ linda841004: 感謝樓上兩位大大的回復, 07/17 10:51
10F:→ linda841004: 未來會避免此種寫法QQ 07/17 10:51
11F:→ linda841004: 既傷電腦又傷心(?) 07/17 10:51