用于计算加权点的sql查询
我有一个数据库,存储的论坛帖子等级为a,b,c。我想为a级分配3分,b级分配2分,c级分配1分,并获得所有用户的总分。如果权重为偶数,我可以使用以下查询:用于计算加权点的sql查询,sql,group-by,weighted,Sql,Group By,Weighted,我有一个数据库,存储的论坛帖子等级为a,b,c。我想为a级分配3分,b级分配2分,c级分配1分,并获得所有用户的总分。如果权重为偶数,我可以使用以下查询: select count(*), userId from table_post group by userId; 但是如何在一个查询中计算加权帖子呢?这些字段是post\u id、user\u id、grade、post\u contentGood query。由于该列不存在,因此使用“points”时出错。在“then”生效后立即分配一个
select count(*), userId from table_post group by userId;
但是如何在一个查询中计算加权帖子呢?这些字段是post\u id、user\u id、grade、post\u contentGood query。由于该列不存在,因此使用“points”时出错。在“then”生效后立即分配一个数字。
SELECT A.USER_ID,SUM(NEW_POINTS)
FROM
(
SELECT USER_ID,
CASE WHEN grade = 'a'
THEN points=3
WHEN grade = 'b'
THEN points=2
WHEN grade = 'c'
THEN points=1
END AS new_points
FROM table_post
) A
GROUP BY A.USER_ID;