情况与以图描述的类似:(出处:http://bbs.csdn/topics/30028983)
上面问题的出处没说解决的办法。
正好我也碰到了一个类似的,表结构示意图如下(表字段代码就免了):
需求:统计每个物种不同文件类型的文件各有多少个?
解决办法:
[sql] view plain copy print ?- SELECT s.`SpeciesID` , s.`Name_CN`, s.`Name_EN`,
- SUM(CASE WHEN fd.`TypeID`=1 THEN 1 ELSE 0 END ) AS FQ ,
- SUM(CASE WHEN fd.`TypeID`=2 THEN 1 ELSE 0 END ) AS cDNA,
- SUM(CASE WHEN fd.`TypeID`=3 THEN 1 ELSE 0 END ) AS ncRNA
- FROM animaldb.`species` S
- LEFT JOIN animaldb.`filedetail` FD ON (s.`SpeciesID` = fd.`SpeciesID`)
- GROUP BY s.`SpeciesID`
SELECT s.`SpeciesID` , s.`Name_CN`, s.`Name_EN`,
SUM(CASE WHEN fd.`TypeID`=1 THEN 1 ELSE 0 END ) AS FQ ,
SUM(CASE WHEN fd.`TypeID`=2 THEN 1 ELSE 0 END ) AS cDNA,
SUM(CASE WHEN fd.`TypeID`=3 THEN 1 ELSE 0 END ) AS ncRNA
FROM animaldb.`species` S
LEFT JOIN animaldb.`filedetail` FD ON (s.`SpeciesID` = fd.`SpeciesID`)
GROUP BY s.`SpeciesID`
执行结果:
更多推荐
分类汇总统计的SQL语句 .
发布评论