PostgreSQL连接查询

f8rj6qna  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(2)|浏览(104)

我们有一个表,其中有一列player_id和另一个transaction_type(存款||撤回)
我们有一个表,其中有一列player_id和另一个transaction_type(存款||撤回)
如何请求获取amount_local列的金额并对其进行分组,以便清楚有多少存款以及从一个人提取了多少存款,并按player_id对其进行分组

li9yvcax

li9yvcax1#

其实很简单您可以使用SQL的SUM()函数和CASE语句来区分存款和取款交易,以便检索按player_id聚合的总存款和取款金额。下面是一个示例查询:

SELECT
    player_id,
    SUM(CASE WHEN transaction_type = 'deposit' THEN amount_local ELSE 0 END) AS total_deposits,
    SUM(CASE WHEN transaction_type = 'withdrawal' THEN amount_local ELSE 0 END) AS total_withdrawals
FROM your_table_name
GROUP BY player_id;

Your_table_name应该更改为表的名称。每个玩家的总存款和取款金额是通过分别为每个player_id添加amount_local列中的值来确定的。
希望这对你有帮助,让我知道如果你需要更多的帮助。

2vuwiymt

2vuwiymt2#

transaction_type列可用于区分存款和取款,而GROUP BY子句可用于按player_id对结果进行分组。下面是两个表的说明SQL命令:

-- For the first table
SELECT
    player_id,
    transaction_type,
    SUM(amount_local) AS total_amount
FROM
    table1
GROUP BY
    player_id,
    transaction_type;

-- For the second table
SELECT
    player_id,
    transaction_type,
    SUM(amount_local) AS total_amount
FROM
    table2
GROUP BY
    player_id,
    transaction_type;

您将从上面的查询中收到一个返回集,其中包括player_id、transaction_type和total_amount列。Transaction_type将是“存款”或“取款”,total_amount将是每个player_id和transaction_type组合的金额总和。
希望它能起作用:)

相关问题