SQL, если регистр true, затем посмотрите на разные значения столбца и посчитайте это

#mysql #sql

#mysql #sql

Вопрос:

Я не могу найти ответ на свою проблему.

У меня есть эти данные :

 Name  | Total | YTD  
------ ------- ----
Item1 | 1     | 1
Item2 | 2     | 1
  

Это должно выполняться следующим образом: если Total имеет значение 1, то нужно посмотреть столбец с начала года, если столбец имеет значение, то показать соотношение между ними. Мне тоже НУЖНО общее значение из всех 1. возможно ли этого достичь?

Я пробовал этот способ:

 CASE 
   WHEN TOTAL = 1 
      THEN YTD 
      ELSE RATIO 
END AS RESULT.
  

Как это должно выглядеть: Случай, когда total = 1, затем проверьте с начала года, если true, подсчитайте сумму и найдите соотношение.

Комментарии:

1. Попробуйте if(Total = 1,YTD, YTD / Total) для столбца, который вы описываете.

2. я попробовал IF (Total = 1, С начала года, С начала года / Total). но проблема в том, что таблица может иметь много разных имен, и мне нужно подсчитать, сколько разных общих имен и сколько общих имен для этого конкретного случая было с начала года.

Ответ №1:

Это можно сделать многими способами. Например, пользовательский регистр stmt

    select case  when Total = 1 then
                              YTD
                             else
                              ratio
                           end as result
                      from tablename;
  

Ответ №2:

Можете ли вы попробовать этот вариант выбора
, когда (total = 1 и ytd<>NULL) затем ytd / total else общий конец как результат из tablename