如何获取mysql中同一行的列值和平均值?

时间:2013-12-12 16:31:38

标签: mysql sql database

我有一个表tbl结构

col1  col2    col3

1       10     3
2       20     3
3       30     4
4       40     4

需要输出

col2    col3  Avg

10      3     15
20      3     15
30      4     35
40      4     35

所以基本上我需要col3上的平均值。 我试过了

select col2,col3,avg(col2) from tbl1 group by col3

但这只会给我们每个匹配组中的第一行。

如何在mysql中完成此操作?

2 个答案:

答案 0 :(得分:0)

select tbl1.col2, tbl1.col3, tbl2.avgcol2 
from tbl1
inner join
(
   select col3,avg(col2) as avgcol2
   from tbl1 
   group by col3
) tbl2 on tbl1.col3 = tbl2.col3

答案 1 :(得分:0)

您可以在SELECT上使用子查询:

select t1.col2,
       t1.col3,
       (select avg(t2.col2) from tab1 t2 where t2.col3 = t1.col3)  AS AVERAGE
FROM tab1 t1

sqlfiddle demo