2013-03-18 114 views
0

目标: 根据第1列和第2列的唯一组合计数(第3列)和总和(第4列的值); 这是可能在一个SQL语句?如果是,那么确切的语法是什么?根据第1列和第2列的唯一组合计数(第3列)和总和(第4列的值);

说明:考虑具有4个列的表像

enter image description here

的任务是要计算所有Id_Indiv和总结权重值取决于属&物种的现有4个独特的组合。

所需的输出是

enter image description here

如果可能的话,以创建一个SQL语句所需要的输出,它可以读取有点像:

SELECT genus, species, count(ID_Indiv) as NoOfIndiv, sum(weight) 
FROM (
    SELECT DISTINCT 
      genus, 
      species 
     FROM TableName 
)W 
group by genus, species; 

注:可能有超过50个可能的属种*物种组合,并且我们不知道是否/何时会出现新的组合。因此我不能预先定义组合,但声明必须识别它们。

请问,有人可以帮我准确的Sql语句吗? 非常感谢!

回答

0

这似乎是你的尝试是非常接近...所以我不知道如果我简单的问题...但不应该只是一个简单的GROUP BY做你在找什么?

SELECT 
    genus, 
    species, 
    COUNT(*) AS NoOfIndiv, 
    SUM(weight) as TotalWeight 
FROM YourTable 
GROUP BY 
    genus, 
    species 
+0

是的,它的工作原理。非常感谢! – user2006697 2013-03-18 18:43:26

1

你用什么嵌套SELECT声明?你不必这样做!

SELECT genus, species, count(ID_Indiv) as NoOfIndiv, sum(weight) 
FROM TableName 
GROUP BY genus, species; 

GROUP BY将采取使各组内的一对{genus, species}独特的护理。

+0

谢谢!我已经使用这个嵌套语句来计算当前有多少个独特的组合,并且我认为现在必须扩展它以获得额外的列(count和sum)。非常好 - 非常感谢! – user2006697 2013-03-18 18:30:58

相关问题