правильные операторы MIN, MAX и CASE - PullRequest
0 голосов
/ 30 сентября 2011

Мне нравится извлекать значения MIN и MAX из одного столбца. Так как я использую Group By, я должен использовать min и max. Если я просто использую весь столбец, это выдает ошибку, что вам нужно использовать агрегатную функцию с Group By

Как я могу это сделать

ValueA = MAX (ValueB) + MIN (ValueB)

какой будет правильный синтаксис?

Любой

и второй вопрос

Как я могу использовать 2 оператора case в такой ситуации

select

ValueA =  Case ValueC
      when ValueB then ValueC
      else ''
      End
      Case ValueD
      when ValueE is blank then ValueD is also blank  
      END

From TableA

использование 2 операторов case, как указано выше, дает мне 2 столбца вместо этого, я хочу 1 столбец плюс во втором случае я только что написал алгоритм того, что я хочу

Как я могу исправить этот код?

Ответы [ 4 ]

1 голос
/ 30 сентября 2011

Ты имеешь в виду это?:

SELECT
    MAX(ValueB) + MIN(ValueB) AS ValueA
FROM
    tableX
GROUP BY
    columnX
0 голосов
/ 23 мая 2017

Ты имеешь в виду это дело?

  SELECT ValueA,

  CASE
  when ValueB = ValueA THEN ValueC
  else ''
  End as ValueC,

  CASE
  when ValueE IS NULL THEN ''  
  END AS ValueD

Трудно понять, что именно вам нужно. Не могли бы вы добавить ваши данные (несколько строк) и какой результат вы ожидаете получить?
Большинство людей не любят изображения данных, но это лучше, чем ничего. :-) Спасибо!

0 голосов
/ 02 октября 2011

Вопрос 1: Зависит от этой группы по предложению. Пожалуйста, вставьте фактический код, который вы используете. Если вам нужен каждый ValueB для каждого столбца X, добавьте его в свою группу, т. Е. group by columnX, ValueB Или если вы просто хотите каждый ValueB один раз. затем SELECT DISTINCT ValueB from tableX

Вопрос 2: Довольно запутанное описание. Приведите пример ввода и вывода данных. Я думаю, вы спрашиваете, если B = C AND E = '' AND D = '' Return C ELSE '' то есть SELECT CASE WHEN B = C AND E = '' AND D = '' THEN C ELSE '' END as A FROM tableA

0 голосов
/ 30 сентября 2011

добавить имя столбца в предложении выбора, по которому вы хотите группировать. Я думаю, что это работает и не дает ошибку

select max(valueB)+min(ValueB)as valueB,columnX from tbl group by columnX
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...