Допустим, у меня есть таблица со следующими столбцами:
Id
Col1
Col2
Col3
COL4
.
.
* Обратите внимание, что у меня есть 50 из этих столбцов ('col1' ... 'col50')
Для каждой строки я хочу подсчитать количество столбцов, начинающихся с 'col' (например, col1, col2 и т. Д.), Которые также содержат определенное целое значение (например, 0).
Так что, если мои данные были:
Id, Col1, Col2, Col3, Col4
0, 0, 1, 2, 1
1, 1, 2, 0, 1
2, 1, 0, 5, 0
3, 0, 0, 0, 4
Мой результат будет:
Id, Count
0, 1
2, 1
2, 2
3, 3
Очевидно, что это нужно масштабировать до 50 столбцов, поэтому я не хочу жестко кодировать имена столбцов (мне нужно, чтобы они были динамическими / циклическими). Я также повторю это с другими значениями, которые я ищу, суть проблемы может быть упрощена до приведенного выше результата.
Я не был уверен, как это сделать. Я подумал о функции, которая принимает имя столбца, значение поиска и счетчик, а затем возвращает итоговую и текущую позицию счетчика или что-то в этом роде. Я должен был бы сделать цикл WHILE для вызова функции, пока не будет достигнут счетчик конца.
Цель состоит в том, чтобы заменить что-то, что работает, но вызывает боль в глазу и не подлежит повторному использованию (с 50 столбцами):
Случай col1, когда 0, затем 1, иначе 0 end + регистр, col col1, когда 0, затем 1, иначе 0 end ...