#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.