我有一个用户表,在这张表中我有一个国家字段,告诉这些人来自哪里(即“瑞典”,“意大利”,......)。如何进行SQL查询以获得类似的内容:
Country Number
Sweden 10
Italy 50
... ...
用户从我给他们的列表中选择他们的国家/地区,但列表非常庞大,因此有一个可以避免使用该列表的SQL查询会很棒,即查看数据库并仅返回这些国家/地区这是在数据库中,因为例如我没有人从巴巴多斯,即使我在注册表单的国家选择字段中有这个选项:)
提前致谢!
答案 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订购