Добавить условие к двум вложенным выборкам в запросе - PullRequest
0 голосов
/ 13 января 2020

У меня есть этот запрос.

SELECT DISTINCT
    u.email,
    (
        SELECT
            count(DISTINCT o.id)
        FROM
            orders o
            INNER JOIN cart_dates cd ON cd.order_id = o.id
        WHERE
            u.id = o.user_id
    ) as total,
    (
        SELECT
            count(DISTINCT o.id)
        FROM
            orders o
            INNER JOIN cart_dates cd ON cd.order_id = o.id AND o.pre_order = TRUE
        WHERE
            u.id = o.user_id
    ) as count

FROM
    users u

Как я могу получить строки, например, count> (total / 2)?

1 Ответ

0 голосов
/ 13 января 2020

Я только предполагаю ответить на этот вопрос.

SELECT 
  u.email
FROM
  users u
  INNER JOIN cart_dates cd ON cd.order_id = o.id
GROUP BY
  u.email
HAVING
  COUNT(DISTINCT Case when o.pre_order = TRUE then o.id else null end) >
  (COUNT(DISTINCT o.id)/2)

Я пытался упростить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...