Mysql-按列2计算一个列组中的数据

时间:2017-04-06 06:03:01

标签: mysql sql

我有一个如下所示的表格,我需要在第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

3 个答案:

答案 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