2016-07-25 46 views
1

我有表,看起来像这样如何获得与行的总数新列值的MySQL

 Date|Col1|Col2|Col3 

01-01-2016|abc | | | 

02-01-2016|xyz |188 | | 

03-01-2016|100 |abc |155 | 

我需要编写一个查询,会给我一个新列与列的总数每天的价值。

 Date|Col1|Col2|Col3|count| 

01-01-2016|abc | | | 1 | 

02-01-2016|xyz |188 | | 2 | 

03-01-2016|100 |abc | 155| 3 | 

在我的实际数据中,我有大约30列,我需要指望。

+1

'select *,count(*)from ... group by col1,col2,col3,...,colN' –

+0

使用您的代码;我在count列上得到的唯一值是1. – dgl

+2

哦,所以03-01-2016会得到3,因为3列有值?那么你需要像'select *,(col1 <>'')+(col2 <>'')+等等......' –

回答

0
SELECT *,(IF(col1 IN (NULL,'') , 0, 1)+ IF(col2 IN (NULL,''), 0, 1)+ IF(col3 IN (NULL,''), 0, 1)) as count 
from table_name 
group by date 

的示例表:
enter image description here

输出:
enter image description here

希望这能解决!

+0

我没有得到你的输出。如果正确理解您的查询方式,它将计算按日期分组的行数,将返回1,因为每个日期只有1行。 – dgl

+0

@dgl检查编辑后的解决方案! –