不是正确的子查询,一个州的多个县试图获得州的计数

Posted

技术标签:

【中文标题】不是正确的子查询,一个州的多个县试图获得州的计数【英文标题】:Not the right subquery, multple counties in a state trying to get count of state 【发布时间】:2015-09-02 15:56:40 【问题描述】:
SDRP15_COSD table
   | ST_code |      |SD Code|     |County Code|

     04                123            001
     06                232            001
     09                332            001


Submission table
| ST_code |         |SD_Code|         |Date|

     04                123            01/21/2003
     06                232            null
     09                332            01/21/2003

我尝试过这种方式,但我认为它不符合我的要求。

select st_code, count(sd_code)
from sdrp15_cosd
where sd_code in 
(select sd_code from submission_table
where date is null)
group by st_code
order by st_code

这里的要求是日期字段为空的相应州的提交表中列出的每个县的总数。考虑到一个州有多个县。与我的 1000 行相比,这些表是简化版。

【问题讨论】:

为什么是子查询而不是联接?除此之外,你为什么不认为它满足要求——你期望什么结果,你会得到什么? 一个县似乎有多个州,反之亦然。 @AlexPoole 我想得到 3 个字符的数字,显然我简化了这些行,因为这里有 100 行数据会过于庞大......我的同事给了我一个提示并告诉我我使用子查询。但是如果它是一个连接条件,我会从哪里开始。 【参考方案1】:

我想我明白了。你需要做的是通过st码和sd码加入表格,然后简单地使用where date is null并按县码分组。

希望这会有所帮助!

【讨论】:

【参考方案2】:

这个查询会给你想要的结果,我假设几件事 st_code 和 sd_code 对于特定国家/地区是唯一的。

select count(1),country 
from ex_9 a,ex_10 b 
where a.st_code = b.st_code 
and a.sd_code = b.sd_code 
and b.data is null 
group by country

【讨论】:

以上是关于不是正确的子查询,一个州的多个县试图获得州的计数的主要内容,如果未能解决你的问题,请参考以下文章

试图获得每个州的总约会。在 MySQL 1055 中出现错误

使用 ClickHouse 中另一个表中的值更新行

无论如何,使用 Google API 可以获得一个州的所有城市,以及一个城市的所有城镇吗?

如何使用特定于州的代理?

如何从对象中递归删除子对象?

俄罗斯黑客将攻击所有50个州的选举系统