【问题标题】:Counting rows in two different tables grouped under the third table计算分组在第三个表下的两个不同表中的行数
【发布时间】:2020-07-01 20:28:12
【问题描述】:

我正在尝试计算分组在第三个表下的两个不同表中发生的事件数。问题是我得到了相同的表格数字!

我试过不为空。它改变了数字,但 cloumns 数字是一样的!!

这是我的代码!

SELECT registration.device_type, 
COUNT(super_trees.events) as super_trees_sends,
COUNT(free_trees.events) as  free_trees_sends 
FROM registration 
full join super_trees on super_trees.user_id = registration.user_id  
full join free_trees on free_trees.user_id = registration.user_id 
WHERE super_trees.events IS NOT NULL
AND free_trees.events IS NOT NULL
GROUP BY registration.device_type;

【问题讨论】:

  • 我猜是因为没有提供任何数据。看来您可能想在 where 子句中使用 OR 而不是 AND。

标签: join count


【解决方案1】:

这行得通

SELECT DISTINCT(registration.device_type), abc.super_trees_sends, abcd.free_trees_sends FROM registration
left join(SELECT device_type, COUNT(events) as super_trees_sends FROM super_trees join registration on super_trees.user_id = registration.user_id GROUP BY device_type ORDER BY super_trees_sends DESC
) abc on registration.device_type = abc.device_type
left join(SELECT device_type, COUNT(events) as free_trees_sends FROM free_trees join registration on free_trees.user_id = registration.user_id GROUP BY device_type ORDER BY free_trees_sends DESC
) abcd on registration.device_type = abcd.device_type

【讨论】:

  • 请不要发布仅代码的答案,解释它是如何回答问题以及问题中的问题或误解是什么。请不要回答不清楚的问题; downvote,关闭投票/标记和评论要求澄清。我知道这是你的问题。所以编辑它。
猜你喜欢
  • 2019-09-25
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 2020-01-14
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多