如何在mysql中通过分组指定值来查找整列的平均值

如何在mysql中通过分组指定值来查找整列的平均值,mysql,Mysql,在我的数据库中,我有这种格式的表 User Values Avg(Values) 1 x1 2 x2 y1 3 x3 4 x4 5 x5 6 x6 y2 7 x7

在我的数据库中,我有这种格式的表

 User           Values            Avg(Values)
  1               x1
  2               x2                  y1
  3               x3
  4               x4

  5               x5
  6               x6                  y2
  7               x7
  8               x8
  .                .
  .                .
  n               xn
我必须分别找到前4个用户的平均值,即x1-x4和后4个用户的平均值分别为x5-x8,并在Avg(值)列中显示前4个用户和后4个用户的平均值,如y1和y2等

如何在mysql中查询

请给我一个解决方案

SELECT FLOOR((user-1)/4)+1 AS y, AVG(values) AS AvgValues
FROM YourTable
GROUP BY y

将用户编号除以4,将把他们放入该大小的组中。我们必须减去1,因为用户数从1开始,而不是从0开始。然后我们在除法后加1,使组号从1开始。

我有两列,分别命名为s_id和cpm,其中的值为

s_id(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2…….7,7,7,7)同样,每个s_id有十个值,我有相应的cpm值(0.000,32.738,0.000,13.423,16.692……)我必须找到s_id 1,2,3等每十个值的cpm平均值,并在列中分别显示为cpm的平均值

s_id CPM
1 0.000 1 32.738 1 0.000 1 13.423 1 16.692 1 30.303 1 0.000 1 28.881 1 0.000 1 29.255 1 0.000 1 31.847 1 0.000 1 21.142 1 0.000 1 20.179 1 0.000 1 37.037 1 0.000 1 20.761 1 0.000 1 5.098 1 26.549 1 26.667 1 0.000 1 9.554 1 0.000 1 34.014 1 0.000 1 30.769 1 0.000 1 4.818 1 0.000 1 13.732 1 0.000 1 26.804 1 0.000 1 28.078 1 0.000 1 33.333 2 12.533 2 4.875 2 26.897 2 19.512 2 26.281 2 21.710 2 18.194 2 8.582 2 15.286 2 25.986 3 33.588 3 36.036 3 25.166 3 10.839 3 30.195 3 32.051 3 32.609 3 33.981 3 38.348 3 27.895 4 38.128 4 14.563 4 24.958 4 23.468 4 32.609 4 29.624 4 26.886 4 29.499 4 28.133 4 34.435 5 35.222 5 30.402 5 21.459 5 29.181 5 37.709 5 29.526 5 32.051 5 35.313 5 29.348 5 35.553 6 30.110 6 25.496 6 40.161 6 33.451 6 33.333 6 30.020 6 23.874 6 43.478 6 35.147 6 35.019 7 39.381 7 40.369 7 32.668 7 30.249 7 41.290 7 48.558 7 30.956 7 41.783 7 27.732
7 26.822

假设我用户1的值为x1、x2、x3、x4,而同一用户1的值又是x5、x6、x7、x8,我必须分别找出同一用户的平均值,并在列中以平均值(x1、x2、x3、x4)的形式显示为y1,以平均值(x5、x6、x7、x8)的形式显示为y2。请显示问题中的一些真实数据及其应产生的结果。