昨天小編面試遇到了一道面試題,sql去重,題目如下:
要實現的效果如下:
當時小編第一眼分析就想到用distinct這個去重,然後就寫上去了,但是最後錯了,我是這麼寫的:
SELECT DISTINCT id,`name`,`value` from test
因爲當時我確定SELECT DISTINCT `name`,`value` from test是正確的,但是要顯示出id就有點困難了,因爲時間有限就沒多想就把上面的sql寫上去了,結果不出意料的錯了。
回家後仔細想了一下,才發現,distinct去重原理是:去重的字段都一致才能去重,只要有一個不一致去重就不能實現,這裏的id沒有重複的。所以就我寫的那條sql根本就沒有去重,所以說這裏使用distinct就不能實現去重查詢了。
最後小編反覆思考後是這樣 實現的: