gpt4 book ai didi

mysql - MySQL:使用GROUP BY进行中位数查询

转载 作者:行者123 更新时间:2023-11-29 15:28:05 25 4
gpt4 key购买 nike

我发现很难计算按ext和value_type分组的合计值的中位数。
现在,我正在使用AVG来计算AVERAGE和GROUP BY ext,value_type
但是AVG值不正确。

我找到了一些解决方案,但所有解决方案均返回错误的中位数结果。
有些解决方案返回偶数行的错误答案。

我现在使用的查询:

SELECT value_type
, ext
, AVG(value) avg
FROM data_values
GROUP
BY ext
, value_type


Mysql Server版本:5.7.27-0ubuntu0.18.04.1(Ubuntu)

表数据值

================================
| ext | value_type | value |
================================
| 10 | type1 | 23.6 |
| 11 | type1 | 29.0 |
| 12 | type1 | 30.2 |
| 13 | type1 | 22.5 |
| 10 | type2 | 300.5 |
| 11 | type2 | 320.2 |
| 12 | type2 | 360.4 |
| 10 | type3 | 1360.4 |
| 11 | type3 | 1360.4 |
| 12 | type3 | 1361.2 |
| ... | ... | ... |
================================



结果:

+"ext": 739
+"value_type": "type1"
+"avg": "20.40" (as Median should be < 20)

+"ext": 739
+"value_type": "type3"
+"avg": "53.358374" (as Median should be < 53)

+"ext": 544
+"value_type": "type1"
+"avg": "30.32" (as Median should be < 30)

+"ext": 544
+"value_type": "type2"
+"avg": "100.40" (as Median should be < 100)

最佳答案

我已经删除了MySQL并安装了MariaDB。
MEDIAN()窗口函数最初是在MariaDB 10.3.3中引入的。

MariaDB中的查询:

SELECT ext, value_type, MEDIAN(value) OVER (PARTITION BY value_type) AS median
FROM data_values
GROUP BY ext, value_type;


结果:

+"value_type": "type1"
+"ext": 739
+"median": 21.7


预期:

+"value_type": "type1"
+"ext": 739
+"median": 17.6

关于mysql - MySQL:使用GROUP BY进行中位数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58928246/

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