五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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 語句冷知識的評論 (共 條)

分享到微博請遵守國家法律
松桃| 黄陵县| 绥化市| 遵化市| 盐源县| 甘肃省| 宁蒗| 静乐县| 象山县| 志丹县| 芷江| 阿拉善右旗| 岑巩县| 绥阳县| 乡城县| 巫溪县| 东明县| 峨眉山市| 泰来县| 兴隆县| 原平市| 涞源县| 棋牌| 资阳市| 咸宁市| 蒲江县| 开封市| 依兰县| 蓬莱市| 札达县| 洞口县| 庆安县| 淮北市| 玉门市| 洪湖市| 抚远县| 武汉市| 隆化县| 霍林郭勒市| 南汇区| 寿宁县|