Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于计算加权点的sql查询_Sql_Group By_Weighted - Fatal编程技术网

用于计算加权点的sql查询

用于计算加权点的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”生效后立即分配一个

我有一个数据库,存储的论坛帖子等级为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 content

Good 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;