如何基于多个表求和
How to sum based on multiple tables
我在使用 SQL 时遇到了一些问题。
我的 table 是:
氏族
--id
与氏族关联的用户
--id
--clan_id
clan_values 链接用户
--id
--user_id
--值
--类型
我需要从 clan_values 中获取每个氏族的不同值。
一个值是 sum(clan_values.values),其中类型等于 3 作为总时间,另一个值是 sum(clan_values.values),其中类型等于 1 作为总质量。我不知道该怎么做。因此结果集将包含完整的 table 氏族总质量和总时间。这可能吗?
您可以使用这样的条件聚合来完成:
SELECT u.clan_id,
sum(case when cv.type = 3 then cv.value else 0 end) as totalTime,
sum(case when cv.type = 1 then cv.value else 0 end) as totalMass
FROM users u
INNER JOIN clan_values cv
ON(u.id = cv.user_id)
GROUP BY u.clan_id
我在使用 SQL 时遇到了一些问题。
我的 table 是:
氏族 --id
与氏族关联的用户
--id
--clan_id
clan_values 链接用户
--id
--user_id
--值
--类型
我需要从 clan_values 中获取每个氏族的不同值。 一个值是 sum(clan_values.values),其中类型等于 3 作为总时间,另一个值是 sum(clan_values.values),其中类型等于 1 作为总质量。我不知道该怎么做。因此结果集将包含完整的 table 氏族总质量和总时间。这可能吗?
您可以使用这样的条件聚合来完成:
SELECT u.clan_id,
sum(case when cv.type = 3 then cv.value else 0 end) as totalTime,
sum(case when cv.type = 1 then cv.value else 0 end) as totalMass
FROM users u
INNER JOIN clan_values cv
ON(u.id = cv.user_id)
GROUP BY u.clan_id