这是一个包含三列的表格:user_id,product_id,评价,
这是表:
user_id product_id rating
u0 p0 3
u0 p1 2
u1 p0 1
u1 p1 4
u2 p0 2
u2 p1 3
如果两个不同的客户都对相同的两种产品进行了评分,则按以下方式计算其评分的点积:
u0和u1均为p0和p1的乘积,结果应为:3 * 1 + 2 * 4 = 11
和结果表:
u0 u1 3*1+2*4=11
u0 u2 3*2+2*3=12
u1 u2 1*2+4*3=14
如何编写查询以获取查询?
最佳答案
T-SQL / SQL服务器
DECLARE @DataSource TABLE
(
[user_id] VARCHAR(2)
,[product_id] VARCHAR(2)
,[rating] DECIMAL(9,2)
);
INSERT INTO @DataSource ([user_id], [product_id], [rating])
VALUES ('u0', 'p0', 3)
,('u0', 'p1', 2)
,('u1', 'p0', 1)
,('u1', 'p1', 4);
WITH DataSource AS
(
SELECT [product_id]
,EXP(SUM(LOG([rating]))) AS [value]
FROM @DataSource
GROUP BY [product_id]
)
SELECT SUM([value])
FROM DataSource;
关于mysql - 编写SQL查询来计算产品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47235304/