sql >> データベース >  >> RDS >> PostgreSQL

GROUPBYクエリを使用したパーセンテージの計算

    WITH t1 AS 
     (SELECT User, Rating, Count(*) AS n 
      FROM your_table
      GROUP BY User, Rating)
    SELECT User, Rating, n, 
           (0.0+n)/(COUNT(*) OVER (PARTITION BY User)) -- no integer divide!
    FROM t1;
    

    または

    SELECT User, Rating, Count(*) OVER w_user_rating AS n, 
            (0.0+Count(*) OVER w_user_rating)/(Count(*) OVER (PARTITION BY User)) AS pct
    FROM your_table
    WINDOW w_user_rating AS (PARTITION BY User, Rating);
    

    これらのいずれかが、RDBMSに適したツールを使用してより優れたクエリプランを生成するかどうかを確認します。



    1. スーパーユーザーCREATEEXTENSIONhstoreのみが作成でき、Herokuでは作成できないのはなぜですか?

    2. SQLiteConnectionオブジェクトのリークを防ぐことができません

    3. テーブル式の基礎、パート6 –再帰的CTE

    4. MySQLのパフォーマンス:長いクエリの識別