gpt4 book ai didi

mysql - SQL关于生成新表的问题

转载 作者:可可西里 更新时间:2023-11-01 08:35:07 24 4
gpt4 key购买 nike

<分区>

图像显示了我的表的结构。第一行表示 tutorB 给 studentD 打 10 分。第二行表示 tutorE 还没有给 studentD 任何分数。

enter image description here

如何生成下表?我在 stackoverflow.com 中引用了另一篇文章。 Collaborative filtering in MySQL?然而,我仍然很困惑。

enter image description here

如上图,o表示推荐,评分大于等于7; x表示不推荐,评分小于7。

例如,tutorB 给 studentD 打了 10 分,因此,从图像的第二行,我们可以看到 StudentD 列中有一个“o”。 (而其他三行的数据现在只是随机分配。)

现在,如果我想为导师 A 推荐一个学生。导师 B、C 和 D 的等级(或相似度)分别为 0,2 和 3。

如何生成 SQL,以便能够将比率转换为“o”和“x”并计算排名。而且,最重要的是,我想从图像中向 TutorA 推荐 StudentH。

我应该如何修改上一篇文章中的代码?而且,如果我上面提到的想法正确?

谢谢。

============================================= =============================

已编辑

我在数据库中有以下数据。第一行表示 tutorA 给 studentC 打了 10 分。

enter image description here

我将其转换为另一个表格以便更好地理解。 v 是速率的值。

enter image description here

create temporary table ub_rank as 
select similar.NameA,count(*) rank
from tbl_rating target
join tbl_rating similar on target.NameB= similar.NameB and target.NameA != similar.NameA
where target.NameA = "tutorA"
group by similar.NameA;

select similar.NameB, sum(ub_rank.rank) total_rank
from ub_rank
join ub similar on ub_rank.NameA = similar.NameA
left join ub target on target.NameA = "tutorA" and target.NameB = similar.NameB
where target.NameB is null
group by similar.NameB
order by total_rank desc;

select * from ub_rank;

以上代码引用自Collaborative filtering in MySQL? .我有几个问题。

  1. SQL 有两部分。我可以从第一部分中选择 *。但是,如果我输入如上所示的整个 SQL,系统会提示 Table 'mydatabase.ub' doesn't exist 我应该如何修改代码?

  2. 代码会发现相似之处。我应该如何更改代码,如果标记小于 7,则更改为 o,否则更改为 v,并计算给定用户的相似度?

enter image description here

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com