表内容
三列内容,其中有重复的内容
一个group by
首先是大家都明白的一个group by操作,用B做group by的条件,a一共有4个,b一共有6个
select count(A),B from test_table group by B
同理
select count(A),C from test_table group by C
两个group by
其实就是做了两次聚合,如下例子,先对B列做一个聚合,再对C列做一次
先对B列进行拆分,拆分成a,b两个,然后分别针对a和b进行拆分。a对应所有的C的字段a-甲,a-乙,b也是同理
select count(A),B,C from test_table group by B,C
三个group by
如果还是做聚合的操作的话,和两个group by的原理是一样的,都是分别进行拆分。如果只有三个字段,然后还进行三个group by,那么就可以理解为是一种去重操作,举例
select A,B,C from test_table group by A,B,C
但是本质上还是对A列先进行拆分,分为1和2两个元素,针对1和2在进行拆分,1对应的B列有a和b,然后B列中的a也有甲乙两个字段。通俗理解还是去重比较好理解 😃