分组计算总和分组条件不是唯一id,并且通过分组的每个唯一id查询附表 相加计算总和
时间: 2024-03-25 09:35:22 浏览: 14
好的,如果您需要在分组查询中,根据某个非唯一 ID 的字段进行分组,并且需要通过每个分组中的唯一 ID 查询附表并相加得出总和,您可以使用以下 SQL 语句:
```sql
SELECT main_table.group_field, SUM(main_table.field) AS sum_field, SUM(attach_table.value) AS sum_value
FROM main_table
INNER JOIN (
SELECT DISTINCT id, value FROM attach_table
) AS attach_table ON main_table.id = attach_table.id
GROUP BY main_table.group_field
```
其中,`main_table` 表是包含非唯一 ID 的分组字段和需要计算总和的字段的主表,`attach_table` 表是包含唯一 ID 和需要相加计算的字段的附表。这个 SQL 语句中使用了 INNER JOIN 来将两个表进行关联,使用 GROUP BY 来按照分组字段进行分组,并使用 SUM 函数来计算每个分组中需要计算总和的字段的总和。同时,使用了 SUM 函数和 INNER JOIN 将附表中的需要相加计算的字段也加入到了查询结果中。
需要注意的是,在这个 SQL 语句中,我们使用了一个子查询来获取 `attach_table` 表中唯一的 ID 和需要相加计算的字段值,这样可以避免在 INNER JOIN 时出现重复的记录。同时,在 SELECT 语句中,我们查询的是 `main_table.group_field` 而不是 `main_table.id`,因为我们按照 `group_field` 字段进行了分组。
需要根据实际情况对 SQL 语句进行修改,以满足您的具体需求。