sql: что означает Max () -1? - PullRequest
3 голосов
/ 08 июня 2011

У меня есть несколько вопросов относительно Макса ()

  1. Что означает следующий запрос?

    SELECT MAX(X) -1 FROM T

  2. Я узнал, что синтаксис должен быть: SELECT (MAX(X) -1) as max_minus_one FROM T нет

  3. За функцией агрегации (т. Е. Max()) должно следовать GRUOP BY?

Ответы [ 4 ]

4 голосов
/ 08 июня 2011

MAX(x) - 1 просто означает максимальное значение x в таблице минус один.

Вы всегда можете использовать круглые скобки и псевдонимы (as some_cool_name), чтобы прояснить ситуацию или изменить имена в результате. Но первый синтаксис совершенно корректен.

Вам нужно GROUP BY, только если вы собираетесь выбрать что-то большее, чем агрегированное значение, например, вот так:

select
    userName,
    avg(age)
from
    users
group by
    userName
2 голосов
/ 08 июня 2011

SELECT MAX (X) -1

и

SELECT (MAX (X) -1)

одинаковы.

В этомЕсли вам не нужен параметр GROUP BY, поскольку вы не выбираете другие неагрегированные поля.

1 голос
/ 08 июня 2011

A. Он облагает налогом максимальное значение и вычитает 1.

B. Если это только агрегатная функция, то нет. Если вы укажете другой столбец, вам придется использовать его в GROUP BY.

1 голос
/ 08 июня 2011

Это будет означать «на единицу меньше максимального значения в столбце X». (а) Нет, это добавляет кое-что. (б) Нет, не при выборе одного столбца, подобного этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...