面試SQL會有哪些題型?
面試官會給你一個業務場景,你認為需要建幾張表,每張表的結構欄位是什麼,表跟表之間的關聯關係是什麼?
這種問題他主要考察你對於業務的理解,構建表結構的一個能力。最基本的局部建表,包括外建、主建等等。
給你幾張表,讓你進行複雜查詢的實現。
這個主要針對多表多列欄位進行嵌套,子查詢等。
主要有以下三種:
語法:聚合函數(列) over(partition by 列 order by 列)常見的聚合函數有:sum()、count()、average()、max()、min()3、同列錯位開窗函數,就是移動位置這樣的題目。
lag(col,n):用於統計窗口內往上第n行值。lead(col,n):用於統計窗口內往下第n行值。應對技巧
遇到忘記或不會的知識點該怎麼辦?
SQL面試,基本分兩種形式,一種現場寫,一種發一套題讓你做。如果你SQL玩得很轉,基本上都沒太大問題。
假如你玩的並不溜,面試時又緊張,這種情況下你很容易寫錯,或者過高判斷面試題難度,你會認為它很難,你不敢寫或怎樣,在這個過程中,先不要慌!
首先他出的題,基本上不會超出業務範圍。不要想的那麼難,你越想的難,就越做不出來,感覺自己是不是考慮的太簡單。其實沒有。
比如涉及到一些業務,如果你在SQL理解上有誤差,你可以說明自己的理解情況,寫出一個結果就可以。
一定要先有思路,再細化。
不光面試寫SQL,包括面試其他知識點,如果你臨時忘記,直接說不會,印象分一定會減弱。那該怎麼辦?
比如面試官問你,寫SQL時如何截斷字符串,你一下子想不起來怎麼寫,你可以說,我在工作中也有用到,但一時半會想不起來,不過我知道在Excel中,可以用 right、left、mid 取中間值進行截斷,或者你還會Python,也可以多說一點。
總之,把對方注意點移到另一方面,而且還延展了內容。但前提你真的知道SQL怎麼處理。
這樣回答,總比你說:「不好意思,我這個我不知道。」要好很多。
迂迴一下,告訴他該怎麼去實現,也是考驗你雙商的時候。
在面試過程中,難免會遇到不會的題,這時候千萬不要直接說:我不會。
如果面試官和藹可親,比較好的話,你就問他:我目前業務範圍還沒有涉及到這類問題,那貴公司是怎麼來解決這個問題?可以虛心請教,回去之後,你要把知識整理一下,最好整理成筆記,再給面試官發一下,這樣,他會明白你的態度還不錯。
也和大家分享一下我曾經類似的經歷。
我當時去面試,被問到關於MySQL實現的一個功能,當時覺得不太可能實現,但又不好意思直說,去反駁面試官。回去後查了相關資料,把詳細知識點,羅列出來,告訴他MySQL不可以實現。他和我說:不好意思,我是用其他軟體或工具來實現,沒有考慮到MySQL不可以實現。
所以,面試官說的問題也不一定都正確。
我們還是要抱有學習的態度,面試也是一種成長和學習的過程。