Sql 计算每个数据唯一的元素总数

Sql 计算每个数据唯一的元素总数,sql,Sql,情况是这样的。我创建了一个包含以下所有信息的视图 CREATE VIEW view2 AS SELECT activity_id, subject_code, academic_period_code, DATEDIFF(HOUR,time_start,time_end) AS duration FROM activity 好的,现在我试着做一个可以产生两列的查询, 1.一个主题代码和学术期间代码连接到一列中 2.第二列包含该学术期间每门学科的总学

情况是这样的。我创建了一个包含以下所有信息的视图

CREATE VIEW view2 AS
SELECT activity_id,
       subject_code,
       academic_period_code,
       DATEDIFF(HOUR,time_start,time_end) AS duration
FROM   activity
好的,现在我试着做一个可以产生两列的查询, 1.一个主题代码和学术期间代码连接到一列中 2.第二列包含该学术期间每门学科的总学时数

所以它是这样的:学术期间121的CS123总共有5个小时的活动。我对第一栏没什么意见,但我一直在想如何才能得到第二栏。如果我使用SUM函数,它只对列本身求和,所以我不知道如何处理这个问题

样本数据

Subject Code   Activity_code    Academic_Period_Code   Duration
CS123          1                 121                   2
CS123          2                 121                   3
CS123          3                 122                   2
CS123          4                 122                   2
我做了什么?]

SELECT subject_code + academic_period_code AS subject,
       (I think I have to do a subquery but I'm not sure how its suppose to work out) AS total_activity_time

从视图2中,假设SQL Server并且我了解您在寻找什么:

select
    subject_code + academic_period_code as [Type],
    sum(duration) as duration
from view2
group by
    subject_code + academic_period_code;

应该能让你达到我认为你想要达到的目的。

为了帮助别人帮助你,在你的问题中添加一些样本数据(一条记录就足够了)和你的预期结果。而且,很明显,你已经尝试了什么来实现这种连接。Jeremy的group by应该会给出你想要的总数。检查下面。我删除了我的答案后,你说我有错误的列。。。但我得问问。你从哪里得到学术证明?这个问题被问到了主题代码和学术周期代码。好的,我把它连接起来了。但我不知道如何获得数据来总结总的活动_time@RThomas ... !!! 哇!是的,我是个白痴。但是,你选错列的原因是不同的。。。你离开了主表而不是视图,在主表中没有计算日期时间。是的,时间持续时间已经计算出来了。我似乎无法得到每一个学习阶段的总持续时间,也无法得到每个学习阶段的总持续时间subject@nfnmy,则
group by
子句应阐明聚合
sum
函数。如果我明白你想做什么,这正是你需要的。
select
    subject_code + academic_period_code as subjects,
    sum(duration) as duration
from view2
group by
    subject_code, academic_period_code;