Невозможно сделать достойный запрос с комбинацией BY в sql - PullRequest
0 голосов
/ 20 марта 2020

Я хочу сделать запрос sql, который покажет количество показов и кликов по имени издателя за последние 7 дней. Поэтому я сделал следующий запрос SQL. Но я не уверен, правильно ли это. Как вы думаете, он будет делать вещи, упомянутые выше? Я хотел бы услышать от вас!

SELECT p.pub_name as "Publisher Name",
       Sum(ast.`impressions`) as 'Impressions', 
       Sum(ast.`clicks`) as "Clicks"
FROM  App_data  ast
Inner JOIN Publishers p 
WHERE  date >= Date_sub(Now(), INTERVAL 7 day) 
GROUP  BY p.pub_name;

Я получил 3 типа столов

1. “Publishers”
[columns]
pub_id
pub_name
pub_country

2. “applications” -  Each publisher (from table #1), can have more than one application

[columns]
app_id
app_name
app_pub_id
App_plat


3. Table name: App_data -  The table holds aggregative data
[columns]
App_id
Date
Impressions 
Clicks
Country

1 Ответ

1 голос
/ 20 марта 2020

Вам необходимо объединить все 3 таблицы, поскольку таблица applications - это ссылка, которая связывает app_data с соответствующей строкой publisher. Затем вы можете использовать предложения ON для связывания таблиц.

SELECT p.pub_name as "Publisher Name",
       Sum(ast.`impressions`) as 'Impressions', 
       Sum(ast.`clicks`) as "Clicks"
FROM  App_data  ast
INNER JOIN applications app ON ast.app_id = app.app_id
Inner JOIN Publishers p ON p.pub_id = app.pub_id
WHERE  date >= Date_sub(Now(), INTERVAL 7 day) 
GROUP  BY p.pub_name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...