У меня есть таблица с более чем 390 столбцами.
Я хотел бы подсчитать, сколько раз значение "Y" присутствует в таблице.
Большинство столбцов могут иметь это значение, некоторые - нет.
Я не знаю, как это сделать, поскольку у него несколько столбцов.
Есть ли способ его выполнить?
Спасибо
Ничего себе много колонок.
Вам нужно будет сделать это в цикле на выбранном вами языке (псевдокод):
while ($rows = mysql_query("SELECT * FROM TABLE")) {
foreach ($col in $rows) {
if ($col == 'Y') {
$count++;
}
}
}
print("Count: $count");
Вероятно, это хорошая идея, чтобы попытаться нормализовать структуру вашей таблицы, чтобы у вас не было так много столбцов в 1 таблице
2 разных 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'
SELECT COUNT(CASE WHEN col1 = 'Y' THEN 1 END) + COUNT(CASE WHEN col2 = 'Y' THEN 1 END) + ... + COUNT(CASE WHEN col390 = 'Y' THEN 1 END)