繁体   English   中英

包含Jaccard相似性的SQL查询的并集和交集

[英]Union and Intersection of SQL query with Jaccard similarity included

CREATE TABLE Customer (cid INTEGER PRIMARY KEY, cname VARCHAR(20) NOT NULL);
CREATE TABLE Product  (pid INTEGER PRIMARY KEY, pname VARCHAR(20) NOT NULL,
    msrp INTEGER NOT NULL);
CREATE TABLE Purchase (cid INTEGER, pid INTEGER, date DATE, 
    price INTEGER NOT NULL,
    PRIMARY KEY (cid, pid, date),
    FOREIGN KEY (cid) REFERENCES Customer(cid),
    FOREIGN KEY (pid) REFERENCES Product(pid));

仅考虑至少进行过一次购买的客户。 对于每对这样的客户,计算他们所购买产品的Jaccard相似度。 也就是说,如果客户A购买了一组商品,而客户B购买了一组商品b,那么他们的Jaccard相似度就是两个集合的交集大小除以其并集大小。 对于每对客户,输出两个cid和Jaccard相似度。 每对应该仅输出一次,即,如果(1; 3; j)是具有Jaccard相似性j的一对匹配的cid,则应该仅返回(1; 3; j),而不返回(3; 1; j)。 按Jaccard相似度对输出进行降序排序,即最相似的对应首先列出。 请注意,此问题询问的是产品而不是产品的购买:如果客户购买了一个以上的产品,则在此计算中,这仅算作一个产品。

我建议您去上班时间,而不要在线寻求帮助。 请查看下面的链接: http : //www.cs.cornell.edu/Courses/cs4320/2016sp/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM