I have a SQL scenario. Could you please help me with the solutions for the same?
I have 2 Tables Account & Credit_Score, with the schema as below.
x
-------------
Account Table
-------------
Account_Number Score
A1 600
A2 600
B1 700
B2 700
B3 700
C1 800
C2 800
-------------------
Credit_Score Table
-------------------
Score Balance
600 1000
700 6000
800 8000
Now, I want a query which can give me a output as shown below. The balance amount gets splitted amongst the Account Holders having similar Score.
------------------------------
Account_Number | Balance
------------------------------
A1 500
A2 500
B1 2000
B2 2000
B3 2000
C1 4000
C2 4000
Advertisement
Answer
You can use window functions:
select a.*,
cs.balance / count(*) over (partition by cs.score) as balance
from account a join
credit_score cs
on cs.score = a.score;