id class grade
a uu 12
a uu 24
b uu 64
a uu 64
c uu 64先是统计每个人的平均分,然后统计不同平均分的对应人数,这个该怎么写?

解决方案 »

  1.   

    select id,class,avg(grade) from tb group by id,class
      

  2.   


    select b.acnt,count(distinct a.id) scnt
    from tb a join (select id,avg(grade) acnt from tb group by id) b on a.id = b.id
    group by b.acnt
      

  3.   

    select id,class,avg(grade) as grade,count(id) as num from tb group by id ,class
      

  4.   

    create table tb
    (
    id varchar(10),
    class varchar(10),
    grade int
    )
    insert into tb values('a','uu',12)
    insert into tb values('a','uu',24)
    insert into tb values('b','uu',64)
    insert into tb values('a','uu',64)
    insert into tb values('c','uu',64)select id,class,avg(grade) as grade,count(id) as num from tb group by id ,class
      

  5.   

    /*
    id,class,grade,num
    a,uu,33,3
    b,uu,64,1
    c,uu,64,1(3 行受影响)
      

  6.   

    先是select avg(grade) from tb group by id,
    然后在这个查询结果当中查询不同平均分的人数
      

  7.   


    select id avg(grade) as avg_grade from table_name group by idseletc count(distinct avg_grade) as diff_avg_grade
    from (select id avg(grade) as avg_grade from table_name group by id) a
      

  8.   


    select id ,avg(grade) as avg_grade from table_name group by idseletc count(distinct avg_grade) as diff_avg_grade
    from (select avg(grade) as avg_grade from table_name group by id) a
      

  9.   

    seletc count(distinct avg_grade) as diff_avg_grade
    from (select id avg(grade) as avg_grade from table_name group by id) 
    大概就是这个语句的的意思 但是为什么报错Every derived table must have its own alias
      

  10.   

    seletc count(distinct avg_grade) as diff_avg_grade
    from (select id avg(grade) as avg_grade from table_name group by id)  t
      

  11.   


    seletc avg_grade,count(distinct id) as diff_avg_grade
    from (select id,avg(grade) as avg_grade from table_name group by id) t
    group by avg_grade