您的位置:首页 > 数据库

分类汇总统计的SQL语句 .

2013-08-16 23:50 344 查看


情况与以图描述的类似:(出处:http://bbs.csdn.net/topics/30028983)



上面问题的出处没说解决的办法。

正好我也碰到了一个类似的,表结构示意图如下(表字段代码就免了):



需求:统计每个物种不同文件类型的文件各有多少个?

解决办法:

[sql]
view plaincopyprint?

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`
执行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: