查找相关的购买产品(在SQL Server数据库中)

时间:2018-07-29 11:45:23

标签: sql sql-server

我必须要有BillsBillDetails表。

Bill表包含以下列:

billId, salesManId, purchaseBranch

BillDetails表包含以下列:

billDetailId , billId, productId,  purchaseBranch, Quantity

我想要的是报告以找到前2个相关产品

例如

  1. 购买iPhone X的人也购买了

    • 游牧坚固电缆
    • Kenu脚架三脚架
  2. 购买三星s5282的人还购买了:

    • 蓝牙键盘
    • MP3播放器

我知道它在某种程度上被称为推荐系统,但是我不知道如何实现它

1 个答案:

答案 0 :(得分:1)

如果购买是同一笔账单,则可以使用自动加入和汇总:

select bd1.productid, bd2.productid, count(*)
from billdetails bd1 join
     billdetails bd2
     on bd1.billid = bd2.billid
group by bd1.productid, bd2.productid
order by bd1.productid, count(*) desc;

对于每种产品,这给出了所有相关产品,并按照出现频率在帐单上排序。