выбор столбца на основе максимального значения - PullRequest
2 голосов
/ 02 марта 2011

У меня есть таблица count с атрибутами

  • count1
  • count2
  • count3
  • count4
  • count5

Я хочу выбрать столбец с максимальным значением. Как мне это сделать?

Количество представляет количество посещений страницы, и я хочу выбрать столбец с максимальным количеством просмотров и отобразить его.

Ответы [ 3 ]

5 голосов
/ 02 марта 2011

Вы можете использовать дважды вложенный подзапрос

select 
  (select max(count1)
   from (
    select count1 union all
    select count2 union all
    select count3 union all
    select count4 union all
    select count5) X) as MaxCount
from tbl
0 голосов
/ 02 марта 2011
   select MAX(max_count) FROM
   (
   select  count1 as max_count from count 
   UNION
   select  count2 as max_count from count 
   UNION
   select  count3 as max_count from count 
   UNION
   select  count4 as max_count from count 
   UNION 
   select  count4 as max_count from count
   )

Я бы не советовал использовать Select, так как его создание занимает много времени. Триггеры были бы лучше

0 голосов
/ 02 марта 2011

Есть несколько способов, включая PIVOT или Temp Table, но я думаю, что проще всего понять, использовать для этого Case.

SELECT
    CASE
        WHEN count1 >= count2 AND count2 >= count3 AND count1 >= count4 AND count1 >= count5 THEN count1
        WHEN count2 >= count3 AND count2 >= count4 AND count2 >= count5 THEN count2
        WHEN count3 >= count4 AND count3 >= count5 THEN count3
        WHEN count4 >= count5 THEN count4
        ELSE count5
    END AS highestCount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...