Нужен точный вывод - PullRequest
0 голосов
/ 25 мая 2018

Я новичок в SQL.Мне нужно знать SQL-запрос, чтобы получить вывод следующего сценария.

У меня есть таблица Campaign со столбцами

Customer ID, Campaign Name, Campaign ID, Channel

Channel может иметь одно из следующих значений:

Direct Email, Email, Both

Как мне оценить канал, по которому клиент связался для кампании?Например, есть несколько клиентов, с которыми связались по обоим каналам.

Как узнать количество клиентов, с которыми связались по обоим каналам?Пожалуйста, помогите мне с запросом.

1 Ответ

0 голосов
/ 25 мая 2018

Это просто, я привел пример.Вы можете проверить это вручную.

select count(*) from (select count(*) as b from Campaign group by customer_id) as a where a.b=2;

Здесь сначала мы сгруппировали их на основе customer_id, который я предположил, чтобы отличаться.Затем посчитали те идентификаторы, для которых были использованы оба канала.

Это фиктивный случай:

+------+------+
| id   | ch   |
+------+------+
|    1 | d    |
|    2 | d    |
|    2 | e    |
|    3 | d    |
|    4 | d    |
|    4 | e    |
|    5 | d    |
|    6 | e    |
+------+------+

inner query: (select count(*) from q group by id);
output: 

       +----------+
        | count(*) |
        +---------+
        |        1 |
        |        2 |
        |        1 |
        |        2 |
        |        1 |
        |        1 |
        +----------+
whole query: mysql> select count(*) 
from (select count(*) as b from q group by id) as a where a.b=2;
        +----------+
        | count(*) |
        +----------+
        |        2 |
        +----------+

1 строка в наборе (0,00 сек)

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