sql server中,当A表存在ID、时长、评价3个字段,B表存在ID字段、分类2个字段,均存在重复值时,以两表的ID进行关联,计算A表剔重ID,计算A表的去重ID后时长总和、以B表的去重分类字段计算时长总和,汇总进入C表,如何编写
时间: 2023-07-15 19:15:46 浏览: 102
MySQL 数据根据单列或者多列去重,保留数据重置ID
5星 · 资源好评率100%
可以按照以下步骤处理:
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表中。
阅读全文