我有三个数据表,其中一个数据表包含州名称、州内的高速公路以及州内的桥梁。我想要建立一个查询,告诉我高速公路和桥梁数目相等的州的数目。我目前有这个查询,该子查询获取每个州的高速公路数量和桥梁数量,并对它们进行计数。我需要进行下一步来得到它们相等的州的总数。我的外部计数只是得到一个总数,而不是,并且不检查桥梁和公路的数量是否相等。如果在主语句中添加一个where原因,我得到了一个错误“不能分组”。但是我不知道如何在子查询中检查计数是否相同。关于如何更改查询的指导将是有帮助的。
SELECT count(*)
from
(SELECT count(h.name), count(b.name)
FROM state c
INNER JOIN highways h
on c.code = l.code
INNER JOIN bridge b
on c.code = g.code
Group By c.code
);
“state”代码是我们的关键字,对每个状态都是唯一的
| 姓名|代码|
| - -|- -|
| 俄亥俄州|羟基|
| 威斯康星州|工作区|
“高速公路”
指两个州之间边界的两州代码
| 代码|姓名|
| - -|- -|
| 羟基|七十六|
| 羟基|八十一|
| 羟基|二十五个|
| 工作区|七十六|
| 工作区|七十八|
“bridges”(不好意思名字不一样)
| 代码|姓名|
| - -|- -|
| 羟基|桥接器1|
| 羟基|桥接器2|
| 工作区|桥接器3|
| 工作区|桥接器4|
1条答案
按热度按时间wgeznvg71#
你只需要第二张和第三张table。先数数然后再把table连起来也是一个好习惯。
| S_计数器|
| - -|
| 一个|
Fiddle