如何使用avg()

问题描述 投票:-1回答:1

我对SQL非常陌生,无法解决。

我要尝试选择的ACCOUNT_ID,CUST_ID,PRODUCT_CD,OPEN_BRANCH_ID的可用余额低于平均可用余额。

SELECT ACCOUNT_ID, CUST_ID, PRODUCT_CD, OPEN_BRANCH_ID
FROM Banking.Account
HAVING AVAIL_BALANCE < AVG(AVAIL_BALANCE);

如果我输入HAVING AVAIL_BALANCE <7000;有用。

enter image description here

sql sql-server
1个回答
1
投票

使用join

select t1.ACCOUNT_ID, t1.CUST_ID, t1.PRODUCT_CD, t1.OPEN_BRANCH_ID from 
Banking.Account t1 
Inner join (
    SELECT avg(AVAIL_BALANCE) avg_bal, ACCOUNT_ID, CUST_ID
    FROM Banking.Account group by  ACCOUNT_ID, CUST_ID
) t2 on t1.ACCOUNT_ID = t2.ACCOUNT_ID and t1.CUST_ID = t2.CUST_ID
where t1.AVAIL_BALANCE < t2.avg_bal;
© www.soinside.com 2019 - 2024. All rights reserved.