2017-04-06 44 views
-1

我有一个表,我需要通过柱2.Mysql-计数数据由列2

column1 column2 
 
a001 \t A 
 
a002 \t A 
 
a001 \t B 
 
a001 \t A 
 
a003 \t B 
 
a004 \t B 
 
a004 \t B 
 
A003 \t A 
 
a003 \t B

找到列1组不同的值的数目我的问题是,如果我正在计算第1列值,它计数值映射到A和B作为一个单一的计数,而不是两个计数,因此我得到第2列的错误计数。 是否有任何解决方案来找到正确的计数?

我所需的输出是这样的:

count \t data1 \t data2 
 
2 \t a001 \t A 
 
1 \t a001 \t B 
 
1 \t a002 \t A 
 
1 \t a003 \t A 
 
2 \t a003 \t B 
 
2 \t a004 \t 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 

工作吗?

+0

谢谢,那工作 – vik55

0
select distinct column1,column2,sum(count_1) from 
(
select column1,column2,1 as count_1 from Table1 
) 
group by 1,2; 

尝试这样的事情

+0

什么2在这? – vik55

+0

1和2在group by之后是column1和column2,您也可以使用它们的名称 –

0

试试这个:

SELECT COUNT(column1) AS count ,column1 As data1, column2 AS data2 
FROM youTable 
GROUP BY column2, column1