菜神提问?
主键ID 回复主题ID
1 0
2 0
3 1
4 2
5 1
6 1
有以上两个字段,第二列如果是0,前面的主键ID就是主题的编号.否如果是1,就是回复编号为1的主题,如果是2就是回复编号为2的主题.
怎么写查询语句能够得到:主题的总数,和回复各编号主题的总数.
------解决方案--------------------select case when 回复主题ID =0 then 主键ID else 回复主题ID end as 主题目的编号,sum(case when 回复主题ID =0 then 1 else 0 end) as 主题总数,sum(case when 回复主题ID =0 then 0 else 1 end) as 回复总数
from tablename
group by case when 回复主题ID =0 then 主键ID else 回复主题ID end
------解决方案--------------------case when 回复主题ID =0 then 主键ID else 回复主题ID end
也就是其他语言中的if else
if(回复主题ID =0)
主键ID;
else
回复主题ID