2015-04-23 96 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; 
相關問題