2016-08-09 7 views
0
SELECT 
    userid, 
    CASE 
     WHEN (COUNT(CASE 
         WHEN onlinesportsgamewagers != 0 
         THEN 1 
         ELSE null 
        END) 
      + COUNT(CASE 
         WHEN depositmade_amt != 0 
          THEN 1 
          ELSE null 
        END)) >= 10 
      THEN "VIP" 
      ELSE "NON-VIP" 
    END as VIPcheck    
FROM 
    player_activity 
WHERE 
    userid = 2023410 
GROUP BY 
    year(txndate), month(txndate) 

このクエリは、各月のユーザーのVIPステータスを決定します。SQLクエリで条件を使用する方法

最終的には、ユーザーが少なくとも3か月間(現在の月を含む)にVIPステータスを取得したかどうかを判断するクエリが必要です。当面はユーザー2023410のみですが、最終的にはこれをデータベース全体に対して実行したいと考えています。

したがって私の最終的な出力は次のようになります。

ユーザ - VIPcheck(3つの異なるヶ月W /アクティブ状態)

(ユーザIDごとに1行)

HAVING COUNT(CASE WHEN (COUNT(CASE WHEN onlinesportsgamewagers != 0 
      THEN 1 
       ELSE null 
      END) 
       + COUNT(CASE WHEN depositmade_amt != 0 
         THEN 1 
          ELSE null 
         END)) >= 10 
      THEN 1 
       ELSE 0 
       END) 

は上記有するステートメントを試みたが、しかしそれはうまくいかなかった。助言がありますか?

答えて

0

私が正しく理解していれば、これは月ごとに一人のユーザのためのVIPステータスを取得します。

SELECT userid, year(txndate), month(txndate),                       
     (CASE WHEN SUM(CASE WHEN onlinesportsgamewagers <> 0 THEN 1 ELSE 0 END) + 
        SUM(CASE WHEN depositmade_amt <> 0 THEN 1 ELSE 0 END) >= 10 
      THEN 'VIP' 
      ELSE 'NON-VIP' 
     END) as VIPcheck    
FROM player_activity 
GROUP BY userid, year(txndate), month(txndate); 

別の集計は、あなたが望む結果を得るでしょう:

SELECT userid, 
     (CASE WHEN SUM(VIPcheck = 'VIP') >= 3 THEN 'SUPER-VIP' 
      WHEN SUM(VIPcheck = 'VIP') >= 1 THEN 'VIP' 
      ELSE 'HOI POLLOI' 
     END) as status 
FROM (SELECT userid, year(txndate), month(txndate),                       
      (CASE WHEN SUM(CASE WHEN onlinesportsgamewagers <> 0 THEN 1 ELSE 0 END) + 
         SUM(CASE WHEN depositmade_amt <> 0 THEN 1 ELSE 0 END) >= 10 
        THEN 'VIP' 
        ELSE 'NON-VIP' 
       END) as VIPcheck    
     FROM player_activity 
     GROUP BY userid, year(txndate), month(txndate) 
    ) uym 
GROUP BY userid; 
+0

こんにちは。あなたの質問はうまくいくようでした。しかし、SELECTセクションではなくFROMセクションになぜ[1人のユーザーのVIPステータス]を入れるのかわかりません。 – eddd83

+0

@ eddd83。 。 。私はコメントを完全に理解していませんが、このクエリは2つの集計を行う必要があります。したがって、 'FROM'節にサブクエリがあります。 –

関連する問題