gpt4 book ai didi

mysql - 在 mySQL 中平均子查询的结果

转载 作者:行者123 更新时间:2023-11-30 23:02:54 25 4
gpt4 key购买 nike

我正在构建一个查询,用于搜索 Medicare 数据库,该数据库列出了医生对各种程序收取的费用。

理想情况下,此查询将:

  • 返回每条记录,这意味着每个医生的每个程序。 (稍后我将添加过滤 WHERE 子句)
  • 返回医生对每个程序收取的平均费用
  • 返回平均费用与每位医生收费之间的百分比差异
  • 返回每位医生所有这些百分比差异的平均值,生成元成本差异分数。

通过下面的查询,除了最后一个目标,我已经能够实现所有目标。

SELECT medicare.*, 
peerAverage.average AS charge_average,
( medicare.average_submitted_chrg_amt - peerAverage.average ) /
peerAverage.average * 100 AS difference_from_average,
Avg( ( medicare.average_submitted_chrg_amt - peerAverage.average ) /
peerAverage.average * 100 ) as total_difference_from_average
FROM medicare
JOIN (SELECT Avg(average_submitted_chrg_amt) AS average,
procedure_code
FROM medicare
GROUP BY procedure_code) AS peerAverage
ON medicare.procedure_code = peerAverage.procedure_code
ORDER BY procedure_code ASC,
difference_from_average DESC

当我添加最后一个 SELECT条件 ( Avg( ( medicare.average_submitted_chrg_amt - peerAverage.average ) / peerAverage.average * 100 ) as total_difference_from_average ),查询只返回一条记录。

删除该条件,查询将返回正确的记录数。我做错了什么?

最佳答案

聚合函数将聚合级别向上移动。在您为 average 函数指定分组条件之前,它将始终返回对所有值聚合的一行,由表达式返回

关于mysql - 在 mySQL 中平均子查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23203791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com