最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

WHERE 語句冷知識

2023-06-28 17:28 作者:SAS駱豪  | 我要投稿

前幾天,我在一篇文章中看到這樣的說法:

數(shù)據(jù)步中的 WHERE 語句可以有三種寫法:

作為輸入數(shù)據(jù)集的 WHERE= 選項;

作為輸出數(shù)據(jù)集的 WHERE= 選項;

作為單獨的 WHERE 語句;

三者的運行速度的快慢關(guān)系為:最快,次之,最慢。

閱讀到這里時,我產(chǎn)生了疑問,方式和方式都是直接應(yīng)用于輸入數(shù)據(jù)集,運行速度怎么會不一樣呢?我打算進行實驗,一探究竟。通過編寫SAS程序,我生成了一個包含超過一千萬條服從01之間均勻分布的隨機數(shù)據(jù)的數(shù)據(jù)集,然后用三種不同位置的 WHERE 條件篩選出大于0.5的數(shù)據(jù)。我編寫了一個簡單的程序,它將3種方式各自運行30遍,然后計算3種方式的運行時間和、均值和中位數(shù),最后,我還將實驗過程錄制成了視頻。

實驗結(jié)果顯示,三者的運行速度應(yīng)該是:,最慢??磥恚@得真正的知識,非得要親身實踐不可。


通過查詢軟件手冊,以及自身多年的工作經(jīng)驗,我還總結(jié)了以下關(guān)于 WHERE 語句的冷知識:

1. 聯(lián)合使用 WHERE 語句和 WHERE= 選項

1.1 數(shù)據(jù)步中,WHERE=選項應(yīng)用到單獨的數(shù)據(jù)集,WHERE 語句應(yīng)用到所有未指定WHERE=選項的數(shù)據(jù)集;

1.2 過程步中,WHERE= 選項和 WHERE 語句指定的表達式會以 and 邏輯進行連接,組合成新的 WHERE 表達式,應(yīng)用到輸入數(shù)據(jù)集;

圖1 在數(shù)據(jù)步中同時使用 WHERE 語句和 WHERE= 選項

圖2 在過程步中同時使用 WHERE 語句和 WHERE= 選項

2. WHERE 語句的使用限制

2.1?DATA步中,讀取 DATALINESCARDS語句指定的數(shù)據(jù)行時,不可以使用 WHERE 語句;

2.2?DATA步中,讀取 INFILE 語句指定的外部數(shù)據(jù)文件時,不可以使用 WHERE 語句;

2.3?當在 SET MODIFY 語句中指定 POINT= 選項時,不可以使用 WHERE 語句;

圖3 在數(shù)據(jù)步讀取數(shù)據(jù)行時使用 WHERE 語句
圖4 在數(shù)據(jù)步讀取外部數(shù)據(jù)文件時使用 WHERE 語句

圖5 在指定 POINT= 選項時使用 WHERE 語句

3. WHERE 語句的使用便利

3.1?WHERE 語句允許單獨使用一個數(shù)值型變量作為表達式,此時,數(shù)值0或缺失值為假,其它值為真;

3.2?WHERE 語句允許單獨使用一個字符型變量作為表達式,此時,缺失值為假,其它值為真;

圖6 在 WHERE 語句中單獨使用一個變量作為表達式

4. 擴充 WHERE 子句

可以使用 WHERE SAME AND WHERE ALSO 語句對前述 WHERE 語句進行擴充,這在語義上等價于在一個 WHERE 語句中用 and 運算符連接多個表達式,但是在編寫和維護方面更具優(yōu)勢。

圖7 擴充 WHERE 子句

5. 未記錄的功能

SAS 中有未記錄在軟件手冊中的函數(shù) monotonic(),它可以返回當前觀測的行號。當想通過 WHERE 語句篩選觀測行號時,不可以使用自動變量_N_(因為該變量衍生于PDV中,而WHERE語句在PDV之前篩選數(shù)據(jù)),但卻可以使用 monotonic() 函數(shù)。

圖8 在 WHERE 語句中使用 monotonic() 函數(shù)


以上幾點中,我最常用到的是第3和第4點,也希望這些知識能給正在閱讀的你帶來幫助。


WHERE 語句冷知識的評論 (共 條)

分享到微博請遵守國家法律
衢州市| 黄山市| 太和县| 承德市| 连云港市| 连江县| 卓尼县| 同心县| 东乡县| 岫岩| 玉溪市| 福鼎市| 特克斯县| 仙居县| 黄石市| 古田县| 大姚县| 邢台市| 霍州市| 荃湾区| 谷城县| 湖州市| 靖宇县| 嘉禾县| 梁平县| 会泽县| 富顺县| 张北县| 延安市| 旅游| 巍山| 香港| 平乡县| 石泉县| 阳谷县| 农安县| 唐山市| 仙桃市| 博爱县| 定南县| 文山县|