基于第1列和第2列的唯一组合计数(第3列)和总和(第4列的值);

时间:2013-03-18 18:18:11

标签: sql-server

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

说明:考虑一个包含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种可能的Genus *种类组合,我们不知道是否/何时会出现新的组合。因此,我不能预定义组合,但声明必须确认它们。

拜托,有人可以帮我查一下确切的Sql语句吗? 非常感谢提前!

2 个答案:

答案 0 :(得分:1)

你使用嵌套的SELECT语句是什么?你不必这样做!

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

GROUP BY将照顾每个组中{genus, species}对唯一。

答案 1 :(得分:0)

看起来你的尝试非常接近......所以我不确定我是否过度简化这个问题...但是不应该只是简单的GROUP BY做你想要的吗? / p>

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