gpt4 book ai didi

mysql - 是否可以将表中的每条记录与查询中其他记录的平均值进行比较

转载 作者:可可西里 更新时间:2023-11-01 07:59:14 25 4
gpt4 key购买 nike

对于 MySQL 中的表,我有两列

col1   col2
1 4.5
1 4.8
1 4.4
1 3.9
1 7.6
1 4.5
2 2.9
2 4.8
2 5.6
2 4.5
3 8.9
3 9.7
3 7.8
3 8.2
3 4.3

我想做的是

  1. 针对不同的 col1 值计算 col2 的平均值,这很容易

SELECT col1,AVG(col2) FROM mytable GROUP BY col1

1   4.95
2 4.45
3 7.78

2。如果 col2 值小于 col1 等于 col1-1 的 col2 值的平均值,则选择该记录。我无法弄清楚这部分:

 SELECT col1,col2 FROM mytable WHERE col2<AVG(col2 where col1= current col1-1)

结果集应该是:

2   2.9
2 4.8
2 4.5
3 4.3

因为col1=0的地方没有记录,所以col1=1的地方也没有记录

最佳答案

试试这个:

SELECT t1.*
FROM @yourtable AS t1
INNER JOIN
(
SELECT col1, AVG(col2) col2avg
FROM @yourtable
GROUP BY col1
) AS t2 ON t1.col1 - 1 = t2.col1
AND t1.col2 < t2.col2avg;

关于mysql - 是否可以将表中的每条记录与查询中其他记录的平均值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15979511/

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