计算来自特定国家/地区的用户数量

时间:2010-09-22 20:27:57

标签: sql count

我有一个用户表,在这张表中我有一个国家字段,告诉这些人来自哪里(即“瑞典”,“意大利”,......)。如何进行SQL查询以获得类似的内容:

Country     Number
Sweden      10
Italy       50
...         ...

用户从我给他们的列表中选择他们的国家/地区,但列表非常庞大,因此有一个可以避免使用该列表的SQL查询会很棒,即查看数据库并仅返回这些国家/地区这是在数据库中,因为例如我没有人从巴巴多斯,即使我在注册表单的国家选择字段中有这个选项:)

提前致谢!

6 个答案:

答案 0 :(得分:3)

如果国家/地区的名称位于“用户”表格中,请尝试以下操作:

SELECT Country, COUNT (*) AS Number
FROM Users
GROUP BY Country
ORDER BY Country

如果国家/地区的名称位于国家/地区表格中,则您必须加入

SELECT Contries.CountryName, Count (*) AS Number
FROM Users
INNER JOIN Countries
    ON Users.CountryId = Countries.CountryId
GROUP BY Countries.CountryName
ORDER BY Countries.CountryName

答案 1 :(得分:3)

这将给你想要的东西。但您可能希望缓存查询的结果。对于很多用户来说,这是一个非常沉重的问题。

SELECT
    country,
    COUNT(*)
FROM
    users
GROUP BY
    country

也许更好的想法是(假设你不需要计数)这样做:

SELECT
    DISTINCT country
FROM
    users

答案 2 :(得分:0)

听起来你想要这样的东西......?

SELECT Country, COUNT(*) AS Number
FROM Users
GROUP BY Country

答案 3 :(得分:0)

这非常简单:

SELECT
    Country, COUNT(*) AS 'Number'
FROM
     YourTable
GROUP BY
    Country
ORDER BY
    Country

您只需按国家/地区对数据进行分组,并计算每个国家/地区的条目。

或者,如果您希望按访问者数量排序,请使用不同的ORDER BY子句:

SELECT
    Country, COUNT(*) AS 'Number'
FROM
     YourTable
GROUP BY
    Country
ORDER BY
    COUNT(*) DESC

答案 4 :(得分:0)

如果您想要按国家/地区计算:

select country, count(*) from users group by country;

如果您只想要可能的值:

select distinct country from users;

答案 5 :(得分:0)

选择BillingCountry,将COUNT(*)作为发票 从发票 按计费国家分组 按发票DESC订购