gpt4 book ai didi

SQL AVG() 返回 3 列的错误结果

转载 作者:行者123 更新时间:2023-12-02 02:00:39 24 4
gpt4 key购买 nike

我正在编写一个查询,它应该给我一个 count() 和三个 avg()count() 工作正常,但 avg() 函数返回错误结果。我正在处理的数据如下所示:

MD Name |    PT | Med Staff | LOS | DRG Bench | LOS - Bench
MCP | 12345 | Ortho SX | 5 | 4 | 1
MCP | 25879 | Ortho SX | 3 | 5 | -2
MCP | 98556 | Ortho SX | 4 | 5 | -1
...

我想要的输出是:

MD Name | # PT | Med Staff | Avg LOS | Avg DRG Bench | AVG LOS - Bench
MCP | 3 | Ortho SX | 4 | 4.66 | 0

我得到的平均结果不正确。我有一个特别的案例,我有以下情况:

MD Name | LOS    | Bench  | LOS - Bench
MCP | 2.0000 | 1.8000 | 0.2000
MCP | 1.0000 | 1.7000 | -0.7000
MCP | 25.0000| 4.9000 | 20.1000
MCP | 4.0000 | 2.2000 | 1.8000

对于和 AVG LOS,我得到 9.000000 而不是 8.000000,对于 AVG Bench,我得到 2.780000 而不是 2.65,对于 LOS-Bench,我得到 6.220000 而不是 5.35,这些是显着差异,我必须正确两位小数。

这是我使用的 SQL,SQL Server 2008

DECLARE @STARTDATE DATETIME
DECLARE @ENDATE DATETIME

SET @STARTDATE = '2013-05-01'
SET @ENDATE = '2013-05-31'

SELECT DISTINCT pv.pract_rpt_name AS 'PHYSICIAN'
, COUNT(DISTINCT vr.pt_id) AS '# PTS'
--, pv.spclty_desc AS 'SPECIALTY'
, pv.med_staff_dept AS 'MED STAFF'
, AVG(vr.len_of_stay) AS 'LOS'
, AVG(vr.drg_std_days_stay) AS 'DRG LOS BENCH'
, AVG(vr.len_of_stay - vr.drg_std_days_stay) AS 'LOS - DRG BENCH'

FROM smsmir.vst_rpt vr
LEFT OUTER JOIN smsmir.pyr_plan pp <-- removed and fixed
ON vr.pt_id = pp.pt_id <-- removed and fixed
JOIN smsdss.pract_dim_v pv
ON vr.adm_pract_no = pv.src_pract_no

WHERE vr.adm_dtime BETWEEN @STARTDATE AND @ENDATE
AND vr.vst_type_cd = 'I'
AND pv.spclty_desc != 'NO DESCRIPTION'
--AND pv.spclty_desc NOT LIKE 'HOSPITALIST%'
AND vr.drg_std_days_stay IS NOT NULL
AND pv.pract_rpt_name != '?'
AND pv.orgz_cd = 's0x0'
AND pv.med_staff_dept IN (
'INTERNAL MEDICINE',
'FAMILY PRACTICE',
'SURGERY'
)
GROUP BY pv.pract_rpt_name, pv.med_staff_dept
ORDER BY pv.med_staff_dept, AVG(vr.len_of_stay - vr.drg_std_days_stay)DESC

感谢您的时间和精力。

最佳答案

查询中的 OUTER JOIN 可能会影响 AVG 函数正在操作的行数。如果您不需要它(而且我看不到您查询中其他地方引用该表的任何地方),请尝试将其删除。

关于SQL AVG() 返回 3 列的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425872/

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