Подсчитать записи столбца в sql - PullRequest
0 голосов
/ 03 мая 2020

Например, у меня есть таблица "CATcuestonario"

enter image description here

  • В ней будет только одна запись.

  • Я только хочу подсчитать столбцы, которые зарегистрировали значение 'Si'

  • В этом случае это будет 3 (столбцы preg1, столбцы preg3, столбцы preg4)

Как мне построить этот запрос?

1 Ответ

4 голосов
/ 03 мая 2020

Простым решением является отключение с cross apply, затем подсчет:

select count(*) no_matches
from mytable t
cross apply (values(preg1), (preg2), (preg3), (preg4)) x(preg)
where x.preg = 'Si'

Обратите внимание, что это также работает, если в вашей таблице более одной строки.

Демонстрация на DB Fiddle :

| no_matches |
| ---------: |
|          3 |
...