SQL join sum groupby where

pooq

我有以下两个表:小提琴

因此,我需要来自 tab1 的“名称”列表,其中“dur”的总和为 10 或更大。两个表之间的连接是 tab1 中的“数字”,可以在 tab2 的“xxx”或“yyy”列中找到。所以预期的输出应该是:Jack, Anna

因为 Jack(1234) 的 'dur' 和是 10,Anna(7582) 的 'dur' 和是 12。

到目前为止,我知道如何根据一列 XXX 获得总和:

SELECT tab1.name FROM tab1
INNER JOIN (
  SELECT xxx, SUM(dur) AS total_dur
  FROM tab2
  GROUP BY xxx)
tab2 ON tab1.number=tab2.xxx
WHERE total_dur >=10

但我如何同时考虑第二个“yyy”列?

鳄鱼

您可以OR在连接条件中使用来检查两列。使用HAVING也可能使查询更具可读性。

SELECT name FROM tab1
JOIN tab2 ON xxx = number OR yyy = number
GROUP BY name
HAVING SUM(dur) >= 10

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章