SQL查询,该查询将显示所有代码,其中该代码中用户之间的平均传输次数少于两次
当两个用户一起传输时,它们将成为“传输”。每次传输都有两个用户。一个用户可以有多个匹配项 当两个用户完成一次传输时,将向传输表中添加一行 预期结果-代码中用户之间的平均传输次数少于两次的代码SQL查询,该查询将显示所有代码,其中该代码中用户之间的平均传输次数少于两次,sql,Sql,当两个用户一起传输时,它们将成为“传输”。每次传输都有两个用户。一个用户可以有多个匹配项 当两个用户完成一次传输时,将向传输表中添加一行 预期结果-代码中用户之间的平均传输次数少于两次的代码 User |uid|admin|match_id|code| |152|0 |NULL |PH | |66 |1 |2212 |US | |66 |0 |1234 |AL | |66 |0 |2221 |AL | Trans
User
|uid|admin|match_id|code|
|152|0 |NULL |PH |
|66 |1 |2212 |US |
|66 |0 |1234 |AL |
|66 |0 |2221 |AL |
Transfer
|eid|transfer_at|match_id|
|284|2018-11-29 |2001 |
|284|2018-11-30 |2023 |
|284|2018-12-03 |2023 |
首先,将exchange加入到用户,并使用聚合来获取每个用户的匹配数。然后再次折衷以获得每个国家的平均匹配数
|code|
|PH |
|US |
|BR |
表和示例数据应显示为CREATETABLE和INSERT INTO语句,而不是图像。所需的结果和您迄今为止尝试的查询也丢失了。请参阅:您应该只标记相关的DBMS。我取下了标签。请只添加一个DBMS。这里没有问题。这是否回答了您的问题?
SELECT x.country
FROM (SELECT u.uid,
u.country,
count(e.eid) matches
FROM user u
LEFT JOIN exchange e
ON e.match_id = u.match_id
GROUP BY u.uid,
u.country) x
GROUP BY x.country
HAVING avg(x.matches) < 2;