我是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.
任何帮助?
答案 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`