Edison Zúñiga Herrera Ответов: 2

Как выбрать максимальное значение из нескольких столбцов


C1          C2          c3          MaxVal
----------- ----------- ----------- -----------
100         1000        300          200
200         456         780          1000
                                     780


Что я уже пробовал:

<pre>I WANT MAX VALUE FOR COLUMN

Mohibur Rashid

Итак, вы даже не попытались задать вопрос должным образом.

2 Ответов

Рейтинг:
1

Dave Kreskowiak

Введите "SQL MAX" в Google и прочитайте, что там написано.

На этот вопрос легко ответить, просто прочитав документацию по функции MAX.


Рейтинг:
1

Maciej Los

В зависимости от того, чего вы пытаетесь достичь...

1) Если вы хотите получить максимум всех столбцов во всех строках:

SELECT MAX(C123) AS MaxValue
FROM (
	SELECT C1 AS C123
	FROM @tmp
	UNION ALL
	SELECT C2 AS C123
	FROM @tmp
	UNION ALL
	SELECT C3 AS C123
	FROM @tmp
	) AS T

--returns 1000


2) Если вы хотите получить максимальное значение каждого столбца (в одной строке):
SELECT MAX(C1) AS C1Max, MAX(C2) AS C2Max, MAX(C3) AS C3Max
FROM @tmp

-- returns:
--200	1000	780


3) Если вы хотите получить максимальное значение каждого столбца (в строках с именами столбцов):
SELECT ColName, MAX(ColValue) AS MaxValueOfCol
FROM (
	SELECT ColName, ColValue
	FROM (
		SELECT C1, C2, C3
		FROM @tmp
	) AS PVT
	UNPIVOT(ColValue FOR ColName IN([C1], [C2], [C3])) AS UNPVT
	) AS T
GROUP BY ColName
--returns:
--C1	200
--C2	1000
--C3	780


Примечание: заменить @tmp с именем таблицы в вашей базе данных.