Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 15:38   #1
SIlvester
 
Регистрация: 04.06.2009
Сообщений: 6
По умолчанию Подсчёт SQL

Я посчитал количество записей по каждому жанру:
form2.Query1.SQL.Add('Select Zanr, Count(Zanr) AS Col From GivedBooks Group By Zanr');

Вопрос:
Как найти Максимальное значение от полученных количеств?
SIlvester вне форума Ответить с цитированием
Старый 30.05.2010, 16:38   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

если совсем просто, то добавь в запрос
Код:
order by Count(Zanr) desc
и в первой строке будет искомое
soleil@mmc вне форума Ответить с цитированием
Старый 30.05.2010, 16:52   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

например, так:
Код:
select AA.zanr, MAX(AA.col) from 
(Select Zanr, Count(Zanr) AS Col 
   From GivedBooks Group By Zanr) AA
или так:
Код:
Select TOP 1 Zanr, Count(Zanr) AS Col From GivedBooks Group By Zanr order by 2 desc
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.05.2010, 16:59   #4
SIlvester
 
Регистрация: 04.06.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
если совсем просто, то добавь в запрос
Код:
order by Count(Zanr) desc
и в первой строке будет искомое
Я об этом тоже думал, но мне мне надо отобразить только с наибольшим.
SIlvester вне форума Ответить с цитированием
Старый 30.05.2010, 17:02   #5
SIlvester
 
Регистрация: 04.06.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
например, так:
Код:
select AA.zanr, MAX(AA.col) from 
(Select Zanr, Count(Zanr) AS Col 
   From GivedBooks Group By Zanr) AA
Немогли бы вы пояснит данный метод?
SIlvester вне форума Ответить с цитированием
Старый 30.05.2010, 18:24   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Немогли бы вы пояснит данный метод?
нет, не мог бы..
потому что это неверный вариант...

это должно было означать следующее
Код:

select AA.* from (Select Zanr,Count(Zanr) AS Col 
   From GivedBooks
  Group By Zanr) AA
where AA.Col in 
(select Max(BB.Col) from 
   (Select Zanr,Count(Zanr) AS Col 
    From GivedBooks
    Group By Zanr) BB )
а вообще рекомендую Вам всё таки запрос через сортировку и получение 1-й записи.
Это примерно такой запрос:
Код:
SELECT TOP 1 Zanr, Count(Zanr) AS Col
FROM GivedBooks
GROUP BY Zanr
ORDER BY 2 DESC;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.05.2010, 18:38   #7
SIlvester
 
Регистрация: 04.06.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение

а вообще рекомендую Вам всё таки запрос через сортировку и получение 1-й записи.
Это примерно такой запрос:
Код:
SELECT TOP 1 Zanr, Count(Zanr) AS Col
FROM GivedBooks
GROUP BY Zanr
ORDER BY 2 DESC;
До этого я им сам дадумался) Суть в том что если у меня 2 жанра с одинаковым количеством одинаковым количеством записей (наприме 2 детектива и 2 романа), то он покажет только 1 из них, а мне надо что бы оба показал.
Впринципе всё то нужно для создания статистики, я наверное просто сделаю сортировку по убыванию и оформлю это как "По популярности, начиная с самого популярного")))
Но за помощь всем спасибо)
SIlvester вне форума Ответить с цитированием
Старый 30.05.2010, 18:44   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
он покажет только 1 из них, а мне надо что бы оба показал.
первый (навороченный с подзапросами) вариант покажет ВСЕ записи с жанрами, имеющие количество, равное максимальному!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.05.2010, 19:05   #9
SIlvester
 
Регистрация: 04.06.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
первый (навороченный с подзапросами) вариант покажет ВСЕ записи с жанрами, имеющие количество, равное максимальному!
Это я понял, но чёто не врубаюсь как он работает. Да и жалуется он на неверное использование Select'а
SIlvester вне форума Ответить с цитированием
Старый 30.05.2010, 19:19   #10
SIlvester
 
Регистрация: 04.06.2009
Сообщений: 6
По умолчанию

так, я разобрался как он работает, но он жалуется на неверное использование Select'a
SIlvester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчёт слов Светочка132 Помощь студентам 1 27.03.2010 15:59
подсчёт ячеек !!! ahpalush Microsoft Office Excel 1 19.01.2010 05:21
Подсчёт голосов eldar PHP 6 01.06.2009 12:40
Подсчёт трафика Альберт Работа с сетью в Delphi 2 10.09.2007 11:35