如何显示客户XX第一次打电话时使用的是哪座塔(Towerid,Location)



我无法从特定客户获得第一次调用的结果。我可以得到这个特定客户所有电话的结果。

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

最新更新