Я ищу решение о том, как подсчитать 3 кода факультета, а затем суммировать все количество в одной переменной. Я не нашел подходящего запроса, чтобы объединить счетчик и затем суммировать его. Это код, который я ...

0
zerhez 15 Янв 2021 в 19:52

2 ответа

Лучший ответ

Как насчет добавления этого?

COUNT(CASE WHEN fac_code LIKE '%FPKF%' OR fac_code LIKE %JABFNT%' OR fac_code LIKE  '%JABPN%' THEN 1 END)

SQL не позволяет использовать псевдонимы в одном SELECT, поэтому альтернативой может быть CTE или подзапрос.

0
Gordon Linoff 15 Янв 2021 в 16:53

Вы можете объединить эти три счетчика в одном условии case .. when или использовать + между ними следующим образом:

SELECT COUNT(CASE WHEN `fac_code` LIKE '%JABPN%'
                    OR `fac_code` LIKE '%JABFNT%'
                    OR `fac_code` LIKE '%FPKF%' 
                  THEN 1 END) AS count1_3
FROM `list_faculty` WHERE active = 'Y';

ИЛИ вы можете использовать + между ними следующим образом:

SELECT COUNT(CASE WHEN `fac_code` LIKE '%JABPN%' THEN 1 END) +
       COUNT(CASE WHEN `fac_code` LIKE '%JABFNT%' THEN 1 END) +
       COUNT(CASE WHEN `fac_code` LIKE '%FPKF%' THEN 1 END) AS count1_3
FROM `list_faculty` WHERE active = 'Y';

И лучший способ в вашем случае - использовать условие в предложении WHERE следующим образом:

SELECT COUNT(*) 
  FROM `list_faculty` 
 WHERE active = 'Y'
   AND (`fac_code` LIKE '%JABPN%'
        OR `fac_code` LIKE '%JABFNT%'
        OR `fac_code` LIKE '%FPKF%')
0
Popeye 15 Янв 2021 в 17:03
65740217