理解復(fù)雜的 SQL 我們可以從SQL語句“量”和SQL邏輯“質(zhì)”兩個(gè)方面判斷。
SQL語句“量”越大,語句的可讀性"就會(huì)大打折扣,讓人深陷“林中”不知在何處,給人帶來觀感上的復(fù)雜。同時(shí),SQL長度 在一定程度上和 SQL的執(zhí)行效率 是負(fù)相關(guān)的。
SQL邏輯“質(zhì)”上的復(fù)雜度,難點(diǎn)主要是“復(fù)雜的數(shù)據(jù)指標(biāo)”本身,比如求用戶復(fù)購率,客戶留存率等,需實(shí)現(xiàn)邏輯判斷和復(fù)雜數(shù)據(jù)計(jì)算,很難避免的復(fù)雜度。
下圖,老馬 給出了,他理解的復(fù)雜SQL的判斷依據(jù):

一個(gè)問題的復(fù)雜度分為兩種:本質(zhì)復(fù)雜度和偶然復(fù)雜度,本質(zhì)復(fù)雜度就是必須要做的事,偶然復(fù)雜度多為偶然的路徑選擇而遇到的額外的事,多余做的事情。

在寫SQL的過程中,遇到問題也是我們?cè)俅螌W(xué)習(xí)的機(jī)會(huì),要嘗試思考找到不同解法,不要形成路徑依賴,提升自我技能。網(wǎng)上有很多方法要會(huì)借鑒,避免閉門造車。
除了SQL之外,也要嘗試學(xué)習(xí)一下新技能,比如Python,數(shù)據(jù)分析 這樣能更好的輔助我們完成工具,形成一套全面的解決方法的知識(shí)體系。