我无法从特定客户获得第一次调用的结果。我可以得到这个特定客户所有电话的结果。
Table 1: Tower: TowerID, Location
Table 2: Connect: Tower ID, CallsID
Table 3: Calls: CallsID, MoBileID, CallDate
Table 4: Mobile: MobileID, CustomerID
我本以为会接到客户XX的第一个电话,Towerid,Location
在这种情况下可以使用partition by
。我还没有测试下面的查询,但我希望它能工作。
select temp.CustomerId, t.TowerId, t.Location
from Tower t
join Connect c on t.TowerId = c.TowerId
join (
select CustomerId
, CallsId
, row_number() over (partition by CustomerId order by CallDate) rank
from Calls c
join Mobile m on c.MobileId = m.MobileId
) temp on temp.CallsId = c.CallsId and rank = 1