|
|
|
| Здравствуйте.
Я создаю мониторинг и вот хотел бы сделать в какую карту чаще всего играют, то есть выводит самая популярная карта de_dust2 к примеру.
Есть таблица servers, в ней есть колонка server_map, туда пишется текущая карта сервера. Так вот надо как то узнать запросом какая карта чаще всего встречается в бд.
Спасибо. | |
|
|
|
|
|
|
|
для: Virtus-pro
(08.12.2009 в 14:40)
| | Вы бы поближе к реализации формулировку привели...
В БД не встречаются карты.
В БД встречаются таблицы.
В таблицах встречаются строки.
В строках встречаются поля.
В полях встречаются значения.
Неплохо было бы также привести фрагмент дампа (структуры и части строк), где была бы видна ситуация с картами. | |
|
|
|
|
|
|
|
для: 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 ;
|
| |
|
|
|
|
|
|
|
для: Virtus-pro
(08.12.2009 в 16:34)
| |
SELECT `server_map`, COUNT(*) AS `cnt`
FROM `servers`
GROUP BY `server_map`
ORDER BY `cnt` DESC
|
Только полнотекстовый индекс там - как корове седло.
Нужен обычный. | |
|
|
|
|
|
|
|
для: Trianon
(08.12.2009 в 16:44)
| | Спасибо.
Только вот это меня смутило
Еще один столбик cnt создать что ли ?
Вот еще вопрос на засыпку. Что если надо вывести топ 3 самых популярных карт. | |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|