代码之家  ›  专栏  ›  技术社区  ›  Emily

在mySQL中求平均值

  •  0
  • Emily  · 技术社区  · 16 年前

    汽车

     id |  person_id  |  mpg
    ------------------------  
     4  |     1       |  50
     5  |     1       |  15
     6  |     2       |  10
     7  |     2       |  28
     8  |     3       |  33
    

    person 1 avg = (50 + 15) / 2 = 32.5
    person 2 avg = (10 + 28) / 2 = 19
    person 3 avg = 33
    
    group average = 32.5 + 19 + 33 / 3 = 28.1
    

    3 回复  |  直到 16 年前
        1
  •  5
  •   Ben    16 年前
    SELECT person_id, AVG(mpg) from car group by person_id;
    

    如果你想得到小组的平均值,你可能应该这样做:

    SELECT AVG(mpg) from car;
    

    SELECT AVG(average) from (SELECT person_id, AVG(mpg) as average from car group by person_id);
    
        2
  •  2
  •   Salandur    16 年前

    select person, avg(mpg) from cat group by person
    
        3
  •  1
  •   Stefan Gehrig    16 年前
    SELECT person_id, AVG(mpg) AS mpg_avg FROM car GROUP BY person_id WITH ROLLUP
    

    WITH ROLLUP -修饰符将在结果集中添加一行,其中 persion_id NULL mpg_avg 是整个结果集的平均值(MySQL>=4.1.1):

     person_id | mpg 
    ------------------
             1 | 32.5 
             2 | 19.0
             3 | 33.0
          NULL | 27.2