小编Ton*_*oin的帖子

在sql中为列获取不正确的AVG()值

我正在编写一个sql查询,它将按列分组并返回它的最小值,最大值和平均值.这是我正在做的事情:

CREATE TABLE Nums (
patient_id VARCHAR(20),
val DOUBLE
);
INSERT INTO Nums
VALUES ("A", 100), ("A", 175), ("B", 200), ("B", 100), ("B",20), ("B",2000), ("B",4000);

select AVG(event_count), MIN(event_count), MAX(event_count)
from Nums a
join (select patient_id, count(*) as event_count from Nums group by patient_id) b
on a.patient_id = b.patient_id;
Run Code Online (Sandbox Code Playgroud)

我正在获取以下查询的输出

AVG(event_count)    MIN(event_count)    MAX(event_count)
4.1429                       2             5
Run Code Online (Sandbox Code Playgroud)

我得到最小值和最大值的正确值,但我预计平均值为3.5.我不确定我做错了什么.关于我缺少什么的任何指示?

谢谢.

mysql sql hiveql

4
推荐指数
1
解决办法
168
查看次数

标签 统计

hiveql ×1

mysql ×1

sql ×1