как я могу рассчитать процентное соотношение между значениями этих двух запросов?

#sql #postgresql

#sql #postgresql

Вопрос:

я работаю над postgres, и у меня есть эти два запроса:

 SELECT "Name", COUNT("xx")
FROM table1 JOIN table2 ON "IDtable1" = "IDtable2"
WHERE "xx" = True
GROUP BY "Name"


SELECT "Name", COUNT("xx")
FROM table1 JOIN table2 ON "IDtable1" = "IDtable2"
GROUP BY "Name"
  

как мне рассчитать процентное соотношение между результатами этих двух запросов?

Ответ №1:

Самый простой метод — использовать avg() :

 SELECT "Name", AVG("xx"::int)
FROM table1 JOIN
     table2
     ON "IDtable1" = "IDtable2"
GROUP BY "Name";
  

Или условная агрегация:

 COUNT(*) FILTER (WHERE "xx") * 1.0 / COUNT(*)
  

Комментарии:

1. После этого я должен умножить на сто, верно?

2. @EpicBrozo96 . , , Если вам нужно значение от 0 до 100.