【发布时间】:2017-09-05 16:06:14
【问题描述】:
我需要构建一个查询来计算平均值和计数,同时忽略标准偏差中的异常值。
Mysql 中有两个表(P 和 A),具有以下属性:
P = 付款:
Value_gbp
Paymentid
Account
rfx_ref
A = 帐户:
Accountid
Entity_type
Settlment_model
rfx_ref
到目前为止,我得到了这个:
SELECT
Account,
COUNT(value_GBP) AS '# Of Payments',
TRUNCATE(AVG(value_GBP),2) As 'Avg Value'
FROM payments,
LEFT JOIN(
SELECT STDDEV(value_gbp) as std_gbp
FROM payments, accounts
WHERE payments.paymentid = accounts.acountid
AND Entity_type = 'company'
AND settlement_model = 'payment agent'
GROUP BY account
) outlier
On payments.paymentid = accounts.acountid
WHERE payments.value_gbp<=outlier.std_gbp*2
AND Entity_type = 'company'
AND settlement_model = 'payment agent'
GROUP BY account
但它正在下降,说明:
On payments.paymentid = accounts.acountid
谁能帮帮我?
【问题讨论】:
-
LEFT JOIN之前不能有逗号 -
主查询不能访问子查询中的表。
-
在未来,最好向我们展示实际的错误消息,而不是猜测您的错误在哪里
-
您的顶级
JOIN不知道accountsDB。你需要用outlier代替JOIN。