0

目标:基于第 1 列和第 2 列的唯一组合进行计数(第 3 列)和求和(第 4 列的值);这可以在一个 SQL 语句中实现吗?如果是,准确的语法是什么?

说明:考虑一个有 4 列的表,例如

在此处输入图像描述

任务是计算所有 Id_Indiv 并根据 4 个现有的属和种的唯一组合来总结权重值。

所需的输出是

在此处输入图像描述

如果可以在一个 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*species 组合,我们不知道是否/何时会出现新的组合。因此我无法预先定义组合,但语句必须识别它们。

拜托,有人可以帮助我准确的 Sql 语句吗?提前非常感谢!

4

2 回答 2

1

你用什么嵌套SELECT语句?你不必那样做!

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

GROUP BY将负责{genus, species}在每个组中使 pair 独一无二。

于 2013-03-18T18:25:58.397 回答
0

看起来你的尝试非常接近......所以我不确定我是否过度简化了这个问题......但不应该只是简单GROUP BY地做你正在寻找的东西吗?

SELECT 
  genus, 
  species, 
  COUNT(*) AS NoOfIndiv, 
  SUM(weight) as TotalWeight
FROM YourTable
GROUP BY 
  genus, 
  species
于 2013-03-18T18:25:48.897 回答