table_a
user_id score
1 0.33
2 0.34
3 0.35
11 0.90
88 0.80
7 0.10
8 0.11
10 0.09
12 0.80
17 0.80
18 0.80
19 0.80
20 0.80
table_b
user_id canon_id
1 1000
2 1000
3 1000
11 4344
88 4344
7 2023
8 2023
10 2023
12 3333
17 3333
18 3333
19 3333
20 3333 在上述情况下,如果来自table_b的关联table_a.user_ids的avg(得分)< 0.50,如何从table_b.canon_id中删除记录。在这种情况下,canon_id 2023和相关的user_ids 7,8,10 (分数)为0.10,因此应该删除它。
发布于 2020-04-28 00:00:23
将table_b连接到一个查询,该查询返回与平均值< 0.5关联的所有canon_ids
delete b
from table_b b inner join (
select b.canon_id
from table_b b inner join table_a a
on a.user_id = b.user_id
group by b.canon_id
having avg(a.score) < 0.5
) t on t.canon_id = b.canon_id;见演示。
结果:
| user_id | canon_id |
| ------- | -------- |
| 11 | 4344 |
| 88 | 4344 |
| 12 | 3333 |
| 17 | 3333 |
| 18 | 3333 |
| 19 | 3333 |
| 20 | 3333 |https://stackoverflow.com/questions/61470376
复制相似问题