我有一张如下表格
C1 | C2 | C3
aa | bb | cc
aa | dd | tt
jj | uu | yy
aa | bb | cc
jj | rr | pp
C1和C2可以以任何组合形式出现并且可以重复值。每个C3值对于C2值是唯一的。我需要查询表以获取C1中的所有不同值,而不是将映射映射到C2中的不同值。按降序排列(不需要降序)。但需要按C1分组,如下所示
C1 | C2 |count| C3
aa | bb | 2 | cc
aa | dd | 1 | tt
jj | uu | 1 | yy
jj | rr | 1 | pp
最好的办法是什么?
答案 0 :(得分:2)
这可以使用C1
,C2
和C3
列上的GROUP BY聚合函数来完成。由于您按这3列分组,因此计数将是匹配的行的总数:
select C1, C2, count(*) Total, C3
from yourtable
group by C1, C2, C3
order by C1, total desc
答案 1 :(得分:0)
select C1, C2, Count(1), C3
from mytable
group by C1, C2, C3
order by 3 desc