1587-银行账户概要 Ⅱ

发布时间 2023-07-11 16:03:12作者: OnlyOnYourself-Lzw

银行账户概要 II

原文地址:1587. 银行账户概要 II - 力扣(LeetCode)

  • 题目如下所示

个人题解

这题很简单,考察的是SUM函数的用法,如以下所示

  • -- 1. 建表
    -- 该表每一行包含银行里每一个用户的账号
    CREATE TABLE 1587_Users(
    	account INT,
    	name VARCHAR(20),
    	PRIMARY KEY(account)
    );
    
    -- 该表每一行包含了所有账户的交易改变情况
    -- 用户收到钱,金额为正,反之为负,所有账户起始余额为0
    CREATE TABLE 1587_Transactions(
    	trans_id INT,
    	account INT,
    	amount INT,
    	transacted_on DATE,
    	PRIMARY KEY(trans_id)
    );
      -- 2. 查询余额高于 10000 的所有用户的名字和余额。账户的余额等于包含该账户的搜友交易的总和
    
      SELECT u.account, SUM(t.amount) FROM 1587_Users u, 1587_Transactions t WHERE u.account = t.account GROUP BY u.account;
    
      SELECT u.name, SUM(t.amount) balance FROM 1587_Users u, 1587_Transactions t WHERE u.account = t.account GROUP BY u.account HAVING SUM(t.amount) > 10000;
    
      -- PS: 这里必须对主键进行分组,否则如果对 name 进行分组的话,name 是可以有重名的情况的。主键则表名其是唯一值