如何使用计数并一起区分

时间:2019-01-07 07:50:54

标签: sql

我有一张带有国家名称的表格。国家名称在表中重复。例如,说表中有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

4 个答案:

答案 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;