计算MySQL中的不同条目

时间:2014-01-19 22:44:53

标签: mysql

我是MySQL的一个开端,我正在使用一个示例数据库,其中包含一个办事处表,其中列出了各州的所有办事处。我想要计算办事处所在州的数量,取消一个拥有两个办事处的州。

我知道

SELECT DISTINCT state
FROM offices
WHERE state NOT IN('NULL');

将返回给我所有不同的状态(总共4个),但我想要计算它们。我试过了

SELECT COUNT(*) AS unique_states
FROM offices 
WHERE state IN(
SELECT DISTINCT state
FROM offices
WHERE state NOT IN('NULL'));

但是这仍然会返回5,即使应该只有4.

任何帮助?

2 个答案:

答案 0 :(得分:1)

您无需使用嵌套查询即可实现此目的。 另外,我认为您的意思是使用state IS NOT NULL代替state NOT IN('NULL')

尝试以下查询:

SELECT COUNT(DISTINCT state) 
FROM offices 
WHERE state IS NOT NULL;

答案 1 :(得分:0)

您可以使用子/嵌套查询

来执行此操作
SELECT COUNT(*)
FROM
  (SELECT DISTINCT state
  FROM offices
  WHERE state NOT IN('NULL')) AS `distinct_states`