我有一个如下所示的表格,我需要在第2列中找到第1列中不同值的数量。
column1 column2
a001 A
a002 A
a001 B
a001 A
a003 B
a004 B
a004 B
A003 A
a003 B
我的问题是,如果我计算第1列值,它将计数映射到A和B的值作为单个计数而不是两个计数,因此我得到错误的第2列计数。 有没有找到正确计数的解决方案?
我想要的输出如下:
count data1 data2
2 a001 A
1 a001 B
1 a002 A
1 a003 A
2 a003 B
2 a004 B
答案 0 :(得分:0)
SELECT COUNT(*), COLUMN2 FROM
(
SELECT DISTINCT column1, column2 FROM table
) X
GROUP BY column2
您可以先获取不同的记录,然后执行计数和分组。
根据你的编辑。不应该
select count(*), column2, column1
from table
group by column2, column1
工作?
答案 1 :(得分:0)
select distinct column1,column2,sum(count_1) from
(
select column1,column2,1 as count_1 from Table1
)
group by 1,2;
尝试这样的事情
答案 2 :(得分:0)
试试这个:
SELECT COUNT(column1) AS count ,column1 As data1, column2 AS data2
FROM youTable
GROUP BY column2, column1