我对2个表A和B进行了简单的查询
Table A
========
LOCATION, NAME
Table B
========
LOCATION, SKU
查询是:
select A.LOCATION, B.SKU
from A, B
where A.Location = B.Location
在此查询的结果中,我想添加另一列,其中B中所有位置的计数与上述查询返回的SKU相同。
答案 0 :(得分:2)
您应该查看Oracle analytical functions。这允许您添加聚合列(例如计数)而不对数据进行分组。
所以,也许是这样的:
select A.LOCATION, B.SKU, count(b.location) over (partition by sku) as locskucount
from A, B
where A.Location=B.Location
order by a.location
这将为您提供每个SKU的位置数。
答案 1 :(得分:2)
我在这里假设您需要A.Location,B.SKU,然后是B.SKU存在的B.Location值的计数。如果这是真的那么它应该只是一个左外连接:
Select A.Location, B.SKU, Count(B.Location)
from
B Left outer join A on (B.Location = A.Location)
Where B.SKU in ( /* value */ )
group by A.Location, B.SKU
这里唯一需要注意的是,对于SKU返回的每个A.Location,您将看到一条包含该位置的行,SKU和重复计数:
Location1, ABC, 100
Location2, ABC, 100
Location3,ABC,100