Есть ли способ получить максимальную функцию, чтобы игнорировать нули в столбце в sqlite? - PullRequest
0 голосов
/ 12 ноября 2018

Проще говоря, если у меня есть таблица с двумя столбцами (скажем, люди и рост), я могу использовать select max (height) из группы 'table' по людям, и это даст наибольшую высоту для любой группы people_ignoring любых нулей_ .

Если, однако, у меня есть таблица с большим количеством столбцов (height_1, height_2, height_3 и т. Д.), И я хочу просто воспроизвести эту таблицу с новым столбцом, показывающим максимальную высоту (height_1, height_2, height_3, max_height), Я бы интуитивно хотел поставить.

select
  height_1,
  height_2,
  height_3,
  max(height_1, height_2, height_3) as max_height
from 'table'

но при таком способе max, похоже, ведет себя по-другому, возвращая ноль, если любой аргументов равен нулю.

Существует ли какая-либо форма использования, которая заставит его вести себя так, как при агрегации столбца, и игнорировать нулевые значения?, Даже при агрегировании отдельных значений в диапазоне столбцов?

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете использовать что-то вроде:

SELECT height_1
     , height_2
     , height_3
     , max(ifnull(height_1, 0), ifnull(height_2, 0), ifnull(height_3, 0)) AS max_height
FROM "table"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...