我想实现这样的查询,sql怎样写

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:25:15
表结构是这样的:miid miname mark mipid,其中,miid是主键,miname为名称,mark为分数,mipid为其所属的父级id,如果mipid为0是则表明其为一级的,相应的mark为0(只有二级才有分数),现在我想通过sql查询总分,要求是这样的,查出每个二级目录的最大分数,然后相加得到总分数,这样的sql语句怎样实现?

select sum(a)
from (select max(mark) as A from table where mipid <> 0 group by mipid)

select sum(max(mark))
from
(
select mipid,max(mark)
from table1
where mipid <> 0
group by mipid
);

如果有下边tp
miid miname mark mipid
1 语文 0 0
2 语文1 80 1
3 语文2 70 1
4 数学 0 0
5 数学1 70 4
6 数学2 60 4
7 英语 0 0
8 英语1 60 7
9 英语2 50 7
SQL语句
select
sum(a.fs) as '总分'
from
(
select
mipid,max(mark) as 'fs'
from tp
where mipid!=0
group by mipid) a
结果:

总分
210