Официальный сайт студ.городка НГТУ
Программирование и БД » Помощь по [SQL] 

#1  06.05.11 21:00

Помощь по [SQL]

Есть записи в поле таблице типа: "фантастика", "научная литра", нужно вернуть ту, что чаще всего встречается, как можно?

Offline

#2  11.05.11 09:32

Igo
Профиль

Re: Помощь по [SQL]

на MySQL как то так,  смысл я думаю ясен в общем случае

select
  *

from
  Page

where
  Page.Caption = (
    select
      Caption
   
    from
      Page

    order by
      count(Page.Content) desc

    limit 1
)

Offline

#3  11.05.11 09:36

Igo
Профиль

Re: Помощь по [SQL]

Хотя пардон, не так задание понял - то что я написал выведет все записи с наиболее часто встречающимся заголовком.

Тем более ты уже и сам нашел решение, не увидел сразу)

Offline

#4  19.05.11 14:35

Re: Помощь по [SQL]

К примеру твоя таблица будет называтся "ТаблицаКниги" в которой есть поле "Жанр"
На MS SQL будет работать такой код

Код::

select top 1 [Жанр], count(*) as cnt from [ТаблицаКниги] group by [Жанр] order by cnt desc

Данный запрос рабает следующим образом, к примеру ТаблицаКниги
Содержит следующие записи в поле

[Жанр]
научная литра
научная литра
фантастика
фантастика
фантастика
фантастика
научная литра
фантастика
Детектив

Сначала запрос посчитает количество повторений каждой записи и будет иметь следующий вид
[Жанр]               [cnt]
научная литра     3
фантастика          5
Детектив              1

Затем упорядочеваем по уменьшению значения в поле Cnt
[Жанр]               [cnt]
фантастика          5
научная литра     3
Детектив              1

И теперь нам остаётся лишь выбрать самую первую запись она же является записью которая чаще всего встречается в этой таблице. Исключение состовляет когда 2 и более записи имеют одинаковое количество повторений в данной таблице, тогда запрос вернёт первую попавшую среди максимальных.

Offline

#5  19.05.11 14:42

Re: Помощь по [SQL]

eagle, спасибо за очень наглядный и доступный пример, именно так я и делал) И экзамен уже сдал)

Offline

Программирование и БД » Помощь по [SQL] 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.026 сек.
Выполнено 11 запросов.