mysql - 编写sql查询来计算产品

标签 mysql sql sql-server sql-server-2008 tsql

这是一个包含三列的表:user_id, product_id, rating,

这是表格:

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/

相关文章:

mysql - 如何同时删除两个表中的记录

mysql - 如何从2个表中获取所有数据

php - 来自 SQL 的 wp_insert_post,Wordpress 数据库错误

c# - 为什么插入表不起作用?

sql-server - SQL Server 2008 架构命名约定

mysql - 用临时表更新表很慢

python无法安装mysql库

php - fatal error : Call to a member function . ..在字符串上

sql - 在 t-SQL 中将值与 NULL 进行比较

sql-server - 数据库开发人员为什么要使用 LINQ