Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск самого частого значения
 
 автор: Virtus-pro   (08.12.2009 в 14:40)   письмо автору
 
 

Здравствуйте.

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

Есть таблица servers, в ней есть колонка server_map, туда пишется текущая карта сервера. Так вот надо как то узнать запросом какая карта чаще всего встречается в бд.


Спасибо.

  Ответить  
 
 автор: Trianon   (08.12.2009 в 14:44)   письмо автору
 
   для: Virtus-pro   (08.12.2009 в 14:40)
 

Вы бы поближе к реализации формулировку привели...
В БД не встречаются карты.
В БД встречаются таблицы.
В таблицах встречаются строки.
В строках встречаются поля.
В полях встречаются значения.

Неплохо было бы также привести фрагмент дампа (структуры и части строк), где была бы видна ситуация с картами.

  Ответить  
 
 автор: Virtus-pro   (08.12.2009 в 16:34)   письмо автору
 
   для: Trianon   (08.12.2009 в 14:44)
 

ну да, есть таблица servers, дальше есть столб server_map для каждой строки )



CREATE TABLE IF NOT EXISTS `servers` (
  `server_id` mediumint(5) unsigned NOT NULL auto_increment,
  `server_name` varchar(30) NOT NULL default 'unknow',
  `server_ip` varchar(25) NOT NULL default '0.0.0.0',
  `server_map` varchar(255) NOT NULL default 'no_image',
  `server_players` varchar(2) NOT NULL default '0',
  `server_maxplayers` varchar(2) NOT NULL default '0',
  `server_status` tinyint(1) NOT NULL default '0',
  `server_location` varchar(50) NOT NULL default '',
  `server_vip` tinyint(1) unsigned NOT NULL default '0',
  `server_protokol` varchar(5) NOT NULL default '',
  `server_regdata` text NOT NULL,
  `server_email` varchar(255) NOT NULL default '',
  `server_icq` varchar(30) NOT NULL default '',
  `server_new` tinyint(1) unsigned NOT NULL default '1',
  `server_site` varchar(255) NOT NULL default '',
  `votes` mediumint(11) unsigned NOT NULL,
  `server_off` tinyint(1) unsigned NOT NULL default '0',
  `steam` tinyint(1) unsigned default NULL,
  `os` text,
  `password` text,
  `secure` text,
  `bots` text,
  `game` varchar(5) NOT NULL,
  `user` int(11) default NULL,
  PRIMARY KEY  (`server_id`),
  FULLTEXT KEY `server_map` (`server_map`)
) ENGINE=MyISAM   ;

  Ответить  
 
 автор: Trianon   (08.12.2009 в 16:44)   письмо автору
 
   для: Virtus-pro   (08.12.2009 в 16:34)
 

SELECT `server_map`, COUNT(*) AS `cnt`
  FROM `servers` 
  GROUP BY `server_map` 
  ORDER BY `cnt` DESC 


Только полнотекстовый индекс там - как корове седло.
Нужен обычный.

  Ответить  
 
 автор: Virtus-pro   (08.12.2009 в 16:52)   письмо автору
 
   для: Trianon   (08.12.2009 в 16:44)
 

Спасибо.
Только вот это меня смутило
ORDER BY `cnt` DESC  

Еще один столбик cnt создать что ли ?

Вот еще вопрос на засыпку. Что если надо вывести топ 3 самых популярных карт.

  Ответить  
 
 автор: Trianon   (08.12.2009 в 17:47)   письмо автору
 
   для: Virtus-pro   (08.12.2009 в 16:52)
 

А слово AS и имя после него в первой строке Вас не смутило?

SELECT `server_map`, COUNT(*) AS `cnt`
  FROM `servers` 
  GROUP BY `server_map` 
  ORDER BY `cnt` DESC  
  LIMIT 3 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования