SELECT customer_trn, avg(balance) FROM
(
SELECT depositor.customer_trn, account.account_number, account.balance FROM
account
INNER JOIN savings_account ON account.account_number = savings_account.account_number
INNER JOIN depositor ON depositor.account_number = account.account_number
UNION ALL
SELECT depositor.customer_trn, account.account_number, account.balance FROM
account
INNER JOIN checking_account ON account.account_number = checking_account.account_number
INNER JOIN depositor ON depositor.account_number = account.account_number
)
AS subquery2 GROUP BY customer_trn ;
Приведенный выше запрос дает следующий результат.
+--------------+---------------+
| customer_trn | avg(balance) |
+--------------+---------------+
| 125-233-001 | 252500.000000 |
| 125-233-002 | 3732.500000 |
| 125-233-004 | 480002.000000 |
| 125-233-005 | 17000.000000 |
| 125-233-006 | 17000.000000 |
| 125-233-007 | 5000.000000 |
| 125-233-008 | 5000.000000 |
+--------------+---------------+
Я пытаюсь присоединиться к этому запросу, чтобы получить имя (из таблицы ниже) вместе с первоначальными результатами.По сути, я хочу связать customer_trn
(первичный ключ) в качестве общего столбца, чтобы сделать результаты таблицы более значимыми.Это будет иметь имя клиента, номер клиента и средний баланс.
CREATE TABLE customer
(
customer_trn varchar(50) NOT NULL UNIQUE,
customer_name varchar(50) NOT NULL,
customer_street varchar(50) NOT NULL,
customer_city varchar(50) NOT NULL,
PRIMARY KEY(customer_name)
);
Так это будет выглядеть так:
+--------------+---------------+---------------+
| customer_trn | avg(balance) |customer_name |
+--------------+---------------+---------------+
| 125-233-001 | 252500.000000 |John |
| 125-233-002 | 3732.500000 |Bobby |
| 125-233-004 | 480002.000000 |James |
| 125-233-005 | 17000.000000 |King |
| 125-233-006 | 17000.000000 |Raven |
| 125-233-007 | 5000.000000 |Mark |
| 125-233-008 | 5000.000000 |Sam |
+--------------+---------------+---------------+