我有兩個表:SQL關節和組同時
R1與主密鑰K1。
R 2與輔助密鑰K1(從R1表)重複的授權。
r2因此可以具有多條具有k1作爲次級密鑰的線路,因此可以在其上進行求和。
例子:
r1 =
(NationalID| Name | Surname | Age)
(9854512| Smith| Ben | 27)
(5454544| Khan | Michel | 29)
(...................)
r2 =
(DrivingPenaltyNumber | NationalID | DrivingPenaltyValue )
(1 |9854512 | 10 )
(2 |5454544 | 5 )
(3 |9854512 | )
(..................................................................)
我想加入這兩個表,在包含兩列一個表:主鍵K1 = NationalID,(在R2 K1的出現次數的數量駕車的處罰數量對於每個人),r2中給定變量的總和(每個人的懲罰總和爲$),然後過濾累積懲罰高於邊界的線。所以,我想在不創建中間表的情況下同時進行連接,組合和調節操作。這是否是正確和最佳的解決方案?
select r1.NationalID, count(r2.NationalID) as numberOfPenalties, sum(r2.DrivingPenaltyValue) as totalPenalty
from r1
left join r2
on r1.NationalID= r2.NationalID
group by r1.NationalID
having count(r2.DrivingPenaltyValue) > boundary
此外,是否有可能使用而不是有?如何 ?你能否請幫助,並可能提供參考。
你的查詢很好。你的問題是什麼? –
我想你的意思是'有(r2.DrivingPenaltyValue)> boundary'的總和,而不是'有計數(r2.DrivingPenaltyValue)> boundary' – lovasoa
是的,的確,查詢工作(在最後一行的總和更換計數後)。但是我想知道是否有可能使用哪裏而不是最後一行來做到這一點? –