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购买了一套产品, 他们的Jaccard相似度是两组交集的大小除以大小 他们的联盟。对于每对客户,输出两个cid和Jaccard相似度。每一对 应该只输出一次,即如果(1; 3; j)是具有Jaccard相似性j的匹配的一对c,你 应该只返回(1; 3; j)而不是(3; 1; j)。通过Jaccard相似性按降序对输出进行排序, 即,应该首先列出最相似的一对。请注意,这个问题询问产品而不是产品 产品购买:如果客户购买的产品不止一次,则只计为一个 用于此计算的产品。