Как использовать агрегатную функцию MAX с SELECT *? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть такой запрос:

$Table = Query "SELECT *, MAX([sequence]) from [dbo].[$cubeTable] WHERE [application] = '$App_input' ORDER BY MAX([sequence])"

У меня есть таблица, в которой перечислены строки кубов, каждый кубик повторяется дважды, и, следовательно, последовательность повторяется дважды.

например:

Table

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

Я хочу вернуть этот оператор для цели цикла и передать только ОДНУ строку / последовательность в определенном случае, который я делаю.поэтому я хочу вернуть только 1 строку последовательности 1 и 1 строку последовательности 2 и т. д. (при условии, что здесь ORDER BY)

, но я получаю следующую ошибку:

Исключение вызывает "Fill" с аргументом (ами) "1": "Столбец 'application' недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY."

1 Ответ

0 голосов
/ 03 октября 2018

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

В вашем случае запрос должен выглядеть так:

select *, max(sequence)
from <your table>
group by <an explicit list of all columns without seqence>
order by max(sequence)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...