我有一张带有国家名称的表格。国家名称在表中重复。例如,说表中有8行,国家(地区)Germany
有5行,国家(地区)UK
有3行。我想对表格中的国家进行计数(例如,我应该得到数字2)。但是我无法提出查询
我尝试了SELECT Country FROM Customers;
,但这会给我8行。我尝试了SELECT DISTINCT Country FROM Customers;
,但这给了我2行。我尝试将count
用作SELECT DISTINCT Count(Country) FROM Customers;
,但得到8(可能是因为DISTINCT
应用于了SELECT Count(Country) FROM Customers;
的结果集?我怎么能得到2
?
答案 0 :(得分:2)
您可以在计数内使用distinct
:
select count(distinct country)
from customers;
等同于:
select count(*)
from (
select distinct country
from customers
where country is not null
) t;
答案 1 :(得分:0)
在内部使用
SELECT count( distinct Country) FROM Customers
答案 2 :(得分:0)
您可以在以下范围内使用不同的国家/地区:
SELECT count(DISTINCT country)
FROM customers;
您还可以在国家/地区和国家/地区中使用不同的国家/地区来获取国家/地区名称:
SELECT count(1), country
FROM customers
GROUP BY country;
答案 3 :(得分:0)
这是使用解析函数执行此操作的一种方法:
SELECT ROW_NUMBER() OVER (ORDER BY COUNT(*)) cnt
FROM customers
GROUP BY country
ORDER BY cnt DESC
LIMIT 1;