这给我带来了更多的麻烦。
我有以下示例表:
____________________ ____________
| Name| Number | | Number |
|_______|__________| |__________|
| Alice | 1 | | 1 |
| Bob | 2 | | 1 |
|_______|__________| |__________|我希望我的结果是:
_____________________________________
| Name | Number | Count(Number) |
|________|___________|_______________|
| Alice | 1 | 2 |
| Bob | 2 | 0 |
|________|___________|_______________|我会来回走动,但我相信这不会那么棘手。我想我漏掉了什么。
我修改了戈登的答案:
select name, number count(t2.number)
from table1 t1,
table2 t2
where t1.number = t2.number (+)
group by t1.number;发布于 2013-08-07 22:19:14
您需要一个连接和聚合。但是,join需要是一个left outer join才能保留所有行:
select name, number, count(t2.number)
from table1 t1 left outer join
table2 t2
on t1.number = t2.number
group by t1.name, t1.number;而且,count()对第二个表中的非空值进行计数,因此当不存在匹配项时,您可以获得0。
https://stackoverflow.com/questions/18105596
复制相似问题