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;