2015-04-23 97 views
1

我在这里得到了一个查询,我希望它列出国家数最多的国家。但是,它给了我一个错误,如果任何人都可以帮助它,将不胜感激!按国家/地区代码排序用户

这是查询结果!

SELECT country_code,count(country_code) FROM `users` 
GROUP BY country_code 
ORDER BY `users`.`id` 
DESC LIMIT 50; 

所以它会像

|美国| 150 |

| CA | 200 |

表结构

CREATE TABLE IF NOT EXISTS `users` (
     `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
     `username` varchar(50) NOT NULL, 
     `password` varchar(50) NOT NULL, 
     `real_name` varchar(50) NOT NULL, 
     `mail` varchar(50) NOT NULL DEFAULT '[email protected]', 
     `rank` int(11) unsigned NOT NULL DEFAULT '1', 
     `motto` varchar(255) NOT NULL DEFAULT 'I love Fatal Hotel!', 
     `account_created` varchar(50) NOT NULL, 
     `last_online` int(15) NOT NULL, 
     `online` enum('0','1') NOT NULL DEFAULT '0', 
     `ip_last` varchar(120) NOT NULL, 
     `ip_reg` varchar(120) NOT NULL, 
     `home_room` int(10) unsigned NOT NULL DEFAULT '0', 
     `daily_respect_points` int(11) NOT NULL DEFAULT '3', 
     `daily_pet_respect_points` int(11) NOT NULL DEFAULT '3', 
     `newbie_status` int(11) NOT NULL DEFAULT '0', 
     `is_muted` enum('0','1') NOT NULL DEFAULT '0', 
     `mutant_penalty` enum('0','1','2') NOT NULL DEFAULT '0', 
     `mutant_penalty_expire` int(11) NOT NULL DEFAULT '0', 
     `block_newfriends` enum('0','1') NOT NULL DEFAULT '0', 
     `hide_online` enum('0','1') NOT NULL DEFAULT '0', 
     `hide_inroom` enum('0','1') NOT NULL DEFAULT '0', 
     `vip` enum('0','1') NOT NULL DEFAULT '0', 
     `logged` int(11) NOT NULL, 
     `points` int(11) NOT NULL, 
     `country_code` varchar(20) NOT NULL, 
     `profile_status` enum('0','1','2') NOT NULL DEFAULT '0', 
     PRIMARY KEY (`id`) USING BTREE 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED AUTO_INCREMENT=467835 ; 

感谢, 乔希

+1

多数民众赞成在相当混乱,为什么order by'users.id'提供表结构。 –

+0

已更新@AbhikChakraborty –

+0

您需要选择国家代码,按用户组计算(*)按国家/地区代码按总额限制50' –

回答

0

在这里你去:

SELECT * FROM (SELECT country_code,count(country_code) AS 'Total' FROM `users` 
GROUP BY country_code 
ORDER BY 'Total' DESC) t LIMIT 50; 

SQL Fiddle example

+1

它显示这个http://i.gyazo.com/a9cd257ebe96e88c1a8b1731163ec0f9.png我只想在表中的最后50条记录屏幕截图显示数据库中的所有记录。 –

+0

@JoshPitcher我更新了我的答案。这应该工作。 –

+0

仍然http://i.gyazo.com/532c76db2f302041f7a14488673bb6b1.png @Phil Walton –

0

这可能会实现:

SELECT country_code,count(country_code) as total FROM `users` 
GROUP BY country_code 
ORDER BY total 
DESC LIMIT 50; 
相关问题