SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE transactions (transaction_id serial PRIMARY KEY ,client_id INT NOT NULL ,action_type VARCHAR(12) NOT NULL ,action_amount INT NOT NULL ); INSERT INTO transactions(client_id,action_type,action_amount) VALUES (1 ,'credit', 1000), (1 ,'debit', 100), (1 ,'credit', 500), (1 ,'debit', 300), (2 ,'debit', 1000), (2 ,'credit', 1200), (3 ,'debit', 1000), (3 ,'credit', 1000), (4 ,'debit', 1000); select transaction_id, client_id, case when action_type='credit' then action_amount else 0 end credit, case when action_type='debit' then action_amount else 0 end debit, sum(case when action_type='credit' then action_amount else -action_amount end) over(partition by client_id order by transaction_id) balance from transactions order by client_id, transaction_id;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear