计算表中存在的值的次数

时间:2018-05-24 20:03:43

标签: mysql count

我有一个包含超过390列的表。

我想算一下de value' Y'列表中有。

大多数列可能都有此值,有些则没有。

我不知道如何执行它,因为它有几列。

有没有办法执行它?

由于

2 个答案:

答案 0 :(得分:1)

哇那很多列。

你必须用你选择的语言循环(伪代码):

while ($rows = mysql_query("SELECT * FROM TABLE")) {
  foreach ($col in $rows) {
     if ($col == 'Y') {
        $count++;
     }
  }
}
print("Count: $count");

尝试规范化表结构可能是个好主意,这样你就不会在1个表中有这么多列

答案 1 :(得分:0)

这里有两种不同的sql方式,但是......你必须把列名放在

    select Columns, count(*) From 
    (select Column1  as Columns from your_table where Column1 = 'Y'
    union all
    select Column2  as Columns from your_table where Column2 = 'Y'
    union all
    select Column3 as Columns from your_table where Column3 = 'Y'
    union all
    select Column4  as Columns from your_table where Column4 = 'Y'
    union all
    select Column5  as Columns from your_table where Column5 = 'Y'
    union all
    select Column6  as Columns from your_table where Column6 = 'Y')myTab
    group by Column;

select value
from yourtable
unpivot
(
  value
  for col in (column1, column2, column3, column4,...etc)
) un
where col = 'Y'