界外篇:面试遇到的sql去重
昨天小编面试遇到了一道面试题,sql去重,题目如下:
要实现的效果如下:
当时小编第一眼分析就想到用distinct这个去重,然后就写上去了,但是最后错了,我是这么写的:
SELECT DISTINCT id,`name`,`value` from test
因为当时我确定SELECT DISTINCT `name`,`value` from test是正确的,但是要显示出id就有点困难了,因为时间有限就没多想就把上面的sql写上去了,结果不出意料的错了。
回家后仔细想了一下,才发现,distinct去重原理是:去重的字段都一致才能去重,只要有一个不一致去重就不能实现,这里的id没有重复的。所以就我写的那条sql根本就没有去重,所以说这里使用distinct就不能实现去重查询了。
最后小编反复思考后是这样 实现的: