MYSQL: две таблицы и ожидаемые результаты - PullRequest
1 голос
/ 06 августа 2020

У меня две таблицы, таблица 1 имеет уникальные идентификаторы и реферер, таблица 2 содержит несколько уникальных идентификаторов из таблицы 1

Таблица 1

uniqueid    | Referrer   
------------------------
abcd1234    | google.com  
27316dsh    | google.com
37283667    | yahoo.com
3728ydhu    | yahoo.com
362ydhhd    | example.com
23819377    | google.com
223hd782    | google.com
2372jdyh    | yahoo.com
qewe7182    | test.com

Таблица 2:

uniqueid    
------------
abcd1234    
27316dsh    
37283667    
3728ydhu    
362ydhhd 

Ожидаемый результат

Referrer    | Total Referrer | Referrer present in table 2 | Percent
--------------------
google.com  |  4             | 2                           | 50%
yahoo.com   |  3             | 2                           | 66% 
example.com |  1             | 1                           | 100%
test.com    |  1             | 0                           | 0%  

Какой SQL запрос следует использовать, чтобы получить ожидаемый результат?

1 Ответ

0 голосов
/ 06 августа 2020

С соединением LEFT table1 с table2 и агрегированием:

select t1.referrer,
       count(*) `Total Referrer`,
       count(t2.uniqueid) `Referrer present in table 2`,
       concat(round(100.0 * count(t2.uniqueid) / count(*)), '%') Percent 
from table1 t1 left join table2 t2
on t2.uniqueid = t1.uniqueid
group by t1.referrer

См. демонстрацию . Результатов:

| referrer    | Total Referrer | Referrer present in table 2 | Percent |
| ----------- | -------------- | --------------------------- | ------- |
| example.com | 1              | 1                           | 100%    |
| google.com  | 4              | 2                           | 50%     |
| test.com    | 1              | 0                           | 0%      |
| yahoo.com   | 3              | 2                           | 67%     |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...