how to select, average and sort in mysql table

狂风中的少年 提交于 2019-12-02 13:06:08

It looks like you're selecting all of the rows where lesson is CHEM, and then you want an extra row with the average of the percantage. How about:

select *
from (
  -- this part gets all the "CHEM" rows
  select * 
  from <your_table_name>
  where lesson = "CHEM"
  union
  -- this parts selects the aggregate row
  select 
    NULL            as `no`, 
    NULL            as `stud_id`, 
    NULL            as `class`,
    "average"       as `lesson`,
    avg(percentage) as `perc`, 
    sum(count)      as `cnt`
  from <your_table_name>
  where lesson = "CHEM"
) q
order by `perc` desc;

Note that the sorting is performed by the outer query.

don't know if you're looking for something like this:

SELECT fields_list, (field_to_modify + (SELECT AVG(average_field) FROM table2)) AS order_field 
  FROM table1
WHERE your_conditions
  ORDER BY order_field;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!