PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Изчисляване на проценти със заявка GROUP BY

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инсталирайте PHP с Postgresql на MAC с помощта на homebrew

  2. Бавна проста заявка за актуализиране на PostgreSQL база данни с 3 милиона реда

  3. Преобразувайте шестнадесетичен в текстово представяне в десетично число

  4. Проучване на забавянето на PostGIS (издание 2019 г.)

  5. Как да мигрирам PostgreSQL база данни в SQLServer?