0

a、b、c のグレードのフォーラム投稿を格納するデータベースがあります。グレード a に 3 ポイント、グレード b に 2 ポイント、グレード c に 1 ポイントを割り当て、すべてのユーザーの合計ポイントを取得したいと考えています。重みが偶数の場合、次のクエリを使用できます。

select count(*), userId from table_post group by userId;

しかし、1 つのクエリで加重投稿をカウントするにはどうすればよいでしょうか。フィールドは、post_id、user_id、grade、post_content です。

4

1 に答える 1

0
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;
于 2013-10-22T02:14:04.463 に答える