SQL 小技巧

很久不搞sql了。整天就是java, java,也挺無聊的。

其實想想,sql還是挺好玩的,尤其是把別人吭哧吭哧幾百行的stored procedure改寫成一個簡潔的query,或者一個本來要跑十分鐘的stored proc改成幾秒鐘,感覺還是滿爽的。

閒來無事,把一些小技巧回憶下來,省得以後考人的時候想不起來了。

1。一個基金performance表,記錄着每個基金的每個月相比於前一個月的增長百分率,比如:
一月: 2.1(%)
二月: -0.5 (%)
三月:
...
十二月:15 (%)

基金用基金ticker來標識。

請列出每個基金從去年五月到今年五月的總共增長。

2。每個基金每個月都有打分,從一分到五分。請列出最近一年內每個基金被打五分的次數,四分的次數,三分的次數。如果一個基金被打至少三分的次數少於兩次,就不要列出來了。

3。請針對上一年列出每個基金增長最好的那個月,包括基金ticker,當月的增長百分比,當月打分。如果兩個月增長幅度相同,選擇打分高的那個月;如果打分也相同,選擇最近發生的那個月。

4。假設基金錶不小心出現了重複數據,也就是ticker, 月份都相同,但是id是主鍵,唯一的。請刪除重複記錄。對重複記錄,保留打分高的那條,如果打分也一樣,保留其中任意一條。(其實,這個和三是一樣的,不過算一個比較常見的dba要面臨的問題)


(答案回頭有時間寫出來。提示:珍愛生命,遠離存儲過程!)

(I have discovered a truly marvelous proof of this, which this margin is too narrow to contain)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章