接下来,我们要为大家介绍另一种去掉重复值的操作,就是使用GROUP BY。事实上,相较于DISTINCT的专职去重而言,去重只能算是GROUP BY的“副业”而已。因为GROUP BY更为广泛的操作描述是数据分组,同学们将在第5章详细了解它的运用。
简单来讲,数据分组就是对具有同一标签的信息做打包处理。不过话说回来,GROUP BY又是怎样根据这一特性进行去重的呢?举个例子,何世钧、杨曼桢、陈叔惠和唐翠芝,4人一行在饭后前往水果摊买水果,相关信息如下表所示。
相信同学们可以理解,虽然性别列含有4项信息,但它实际上只包含两类不同的数据—男和女。同样的道理,虽然水果列也含有4项信息,但它其实只包含3类不同的数据—梨、苹果和橙子。
回归到实际运用中,如果李乔丹想要查看Contact表中的姑娘们都来自哪些不同的城市,那么我们只需使用GROUP BY对location列中的不同信息进行分组即可:
瞧,GROUP BY实现了与DISTINCT一样的去重效果。这是因为,使用GROUP BY是对具有同一标签的信息做打包处理,同时顺带(间接地)实现了数据的去重。