SQL - как я могу вернуть количество неудачных заказов, если есть условие? - PullRequest
0 голосов
/ 01 ноября 2018

Итак, у меня есть две таблицы - таблица клиентов и таблица заказов. customer with attributes custid, name, address и orders with attributes customerid, orderid, date and status. Мне нужно вернуть идентификаторы тех клиентов, у которых было более 15% их заказов со статусом «сбой».

Это то, что я написал и в настоящее время не работает:

SELECT C.custid
FROM customers C
WHERE C.custid IN (SELECT O.customerid, COUNT(status)
                   FROM orders O
                   WHERE O.status='failed'
                   GROUP BY O.custid
                   HAVING COUNT(status)=0.15)

1 Ответ

0 голосов
/ 01 ноября 2018

Вот один подход с использованием агрегации в таблице orders:

SELECT customterid
FROM orders
GROUP BY customerid
HAVING COUNT(CASE WHEN status = 'failed' THEN 1 END) / COUNT(*) > 0.15;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...