Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Выбор максимально популярного...


Автор: mladenez 25.12.2007, 14:24
У меня есть Таблица такого вида:

ID      Значение
1         1
2         1
3         1
4         2
5         2
6         3

Мне надо составить запрос таким образом чтобы выбралось самое популярное значение,в данном случае результатом будет '1'!

Автор: Sqlninja 25.12.2007, 15:51
Код

select val
from   (select   val,
                 count (*) cnt
        from     x
        group by val)
where  cnt = (select max (cnt)
              from   (select   val,
                               count (*) cnt
                      from     x
                      group by val))


или

Код

select val
from   (select   val,
                 count (*) cnt
        from     x
        group by val
        order by cnt desc)
where  ROWNUM = 1;

Автор: mladenez 25.12.2007, 17:22
А что в этом случае есть 'cnt'?

Автор: skyboy 25.12.2007, 17:28
mladenez, псевдоним для поля.

Добавлено через 11 секунд
точнее, для выражения.

Добавлено через 4 минуты
не знаю, как в общем виде(скорее всего - только так, как показал sqlninja), но для MySQL подойдет такой вариант:
Код

SELECT val, count (*) cnt
FROM x
GROUP BY val
ORDER BY cnt DESC
LIMIT 1

Автор: mladenez 25.12.2007, 17:56
СПАСИБО!!!Очень помогло!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)