У меня есть таблица, которая сначала группирует идентификатор учетной записи по категории продукта, а затем у меня есть запрос, который смотрит на каждый идентификатор учетной записи и дает логическое значение относительно того, одобрены ли они для службы.
Я хочу добавить столбец в запрос, который разбивает все идентификаторы ACCOUNT в каждой категории и дает мне знать процент одобрения для этой категории (количество истинных результатов на идентификатор учетной записи/общий объем IDS в этой категории)
Данные по существу выглядят так:
| category | number of account ID in category |
|---------------|-------------------------------------|
| Bikes | 22 |
| Snowboards | 10 |
| Skis | 13 |
| Account ID | approved for service? | Category |
|-------------|-----------------------|-----------|
| 12345 | TRUE | snowboard |
| 67891 | FALSE | snowboard |
| 17492 | TRUE | skis |
| 42929 | TRUE | Bikes |
В идеале мне бы хотелось, чтобы запрос организовал результаты "одобренные для обслуживания" по категориям продуктов и дал мне настоящий процент. В этом случае таблица результатов должна выглядеть примерно так:
| Category | number of account ID in Category | approval percentage |
|-------------|------------------------------------|----------------------|
| Bikes | 1 | 100% |
| Snowboards | 2 | 50% |
| Skis | 1 | 100% |
Любая помощь или советы были бы весьма признательны :)
Ты можешь сделать:
select category, avg( approved_for_service = 'True') * 100
from t1
group by category;
Если approved_for_service
является логическим, то:
select category, avg( approved_for_service ) * 100
from t1
group by category;
function avg(boolean) does not exist Hint: No function matches the given name and argument types. You may need to add explicit type casts.