sql server中,当A表存在ID、时长两个字段,均存在重复值时,计算A表剔重ID的时长总和,如何编著写
时间: 2023-07-15 13:15:32 浏览: 126
可以使用如下的SQL语句来计算A表剔重ID的时长总和:
```
SELECT ID, SUM(时长) AS 总时长
FROM (
SELECT DISTINCT ID, 时长
FROM A
) AS T
GROUP BY ID
```
以上SQL语句首先使用子查询去重A表中的ID和时长,然后对去重后的结果按ID进行分组,最后使用SUM函数计算每个ID对应的时长总和。
相关问题
sql server中,当A表存在ID、时长、评价3个字段,B表存在ID字段、分类2个字段,均存在重复值时,以两表的ID进行关联,计算A表剔重ID,计算A表的去重ID后时长总和、以B表的去重分类字段计算时长总和,汇总进入C表,如何编写
可以按照以下步骤处理:
1. 计算A表的去重ID后时长总和,可以使用以下SQL语句:
```
SELECT DISTINCT ID, SUM(时长) AS 总时长
FROM A
GROUP BY ID
```
2. 计算B表的去重分类字段计算时长总和,可以使用以下SQL语句:
```
SELECT DISTINCT 分类, SUM(时长) AS 总时长
FROM B
GROUP BY 分类
```
3. 将上述两个结果合并,可以使用以下SQL语句:
```
SELECT A.ID, A.总时长 AS A表总时长, B.分类, B.总时长 AS B表总时长
INTO C
FROM
(SELECT DISTINCT ID, SUM(时长) AS 总时长
FROM A
GROUP BY ID) AS A
JOIN
(SELECT DISTINCT 分类, SUM(时长) AS 总时长
FROM B
GROUP BY 分类) AS B
ON A.ID = B.ID
```
其中,使用了两个子查询分别计算A表和B表的总时长,然后通过ID字段进行连接,得到最终结果,并将结果插入到C表中。
阅读全文