這是今天發生在工作上的事….
等了好久…總算找來幫我解IR單的人,
我微小的請求總算被聽見了.
針對這位人選我有二個要求,
一是要熟SQL,而不是會SQL而已,
二是要能USER好好溝通,不會老嗆USER….
(現在想來我開的這兩個條件好像都是針對專案的某人….哈!!)
今天人力公司會先來一位面試,由我準備考題測驗,
題目不難,我相信有做過DW的應該都會,
不會就要打屁股囉!!
題目大意是,
第一題考的是從一堆資料中分群組小計及計算平均值;
第二題考的是RANK的語法.
題目不難,但那位人兄的答案不能說不對,只是效能很差,
第一題先在FROM的部分下了很多SELECT把單一群組的COUNT、SUM出來,
然後再SELECT出來,語意如下:
SELECT A1.某小計, A2.某金額, B1.某小計, B2.某金額
FROM
(SELECT COUNT(*) FROM X WHERE 條件A) A1
(SELECT SUM(金額) FROM X WHERE 條件A) A2
(SELECT COUNT(*) FROM X WHERE 條件B) B1
(SELECT SUM(金額) FROM X WHERE 條件B) B2
……多個群組
多次對同個TABLE做SELECT多次…..
大家應該會有更好的做法,
要是我會用一個SELECT以及CASE WEHN來計算各個群組.
第二題呢? 他好像不知有RANK這個指令,
因此寫了一長串的CURSOR針對每筆資料作比對,然後INERT到TEMP TABLE.
我也不能說不對…..只能說這個作法…..
果然之前是做AP的來著.
公司PM問我這個人OK嗎?
我不知哪來的張老師悲天憫人性格發作…
「寫出來的SQL效能不好,應該之前沒學過TUNE效能」
「先列入觀察,看之後點不點的通吧!!」
「只是,還是會花到我的時間」
公司PM說「這樣怎麼可以? 不是要找一個能馬上用的人嗎?」
「不行就說,退就好」
客戶那的PM也說話了「你確定那個人OK? 之後如果又要增加你工作量的話,
也不會付(MANDAY)的錢喔!!」
俗話說見面三分情….「叫他走人」這句話我說不出口呀!!
「要不然就由我這來做黑臉,說這人不OK好了,叫他下午就回去」
「不是人力公司來幾個我們都照收,要篩選的.」
客戶PM這麼說.
但真正讓我下定決心的是,在我請他改良考題SQL效能時,
他把COUNT(*)寫在CASE WHEN裡面了……
這已經不是點不點的通的問題.
最後,我把這難事交給主管們去溝通….
要害他沒工作了….那時心裡只想著這個…..
我果然是個好人(自己給自己發卡,太絕了吧!!)
現在想來,又不是女的,我對他那麼好幹嘛!!
如果到時我工作量增大,才真得是自做自受.
“如果以後找來又請不走怎麼辦?”
這又打到我一個痛點….
我爸聽到我故事後說的最中肯,
“同樣都是領老闆的錢,但你卻找了個不OK的人來,
就是對不起自己的老闆,這樣對嗎?”
最後還是請他走人了啦!!
下一位請上前