MySQL Просмотр нескольких таблиц Дубликаты - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь создать представление с несколькими таблицами, которые содержат единые данные даты / счета, но разные данные наблюдений.

VISITS(Date, CompanyName, Visits)
SEARCHES(Date, CompanyName, Searches)
REPORTS(Date, CompanyName, Reports)

CREATE VIEW V AS 
    SELECT
        v.Date,
        v.CompanyName as Company,
        s.PageViews as Searches,
        r.PageViews as Reports
    FROM 
        Visits_r1 v
    LEFT JOIN
        Searches_r s ON v.CompanyName = s.CompanyName
    LEFT JOIN
        Reports_r r ON v.CompanyName = r.CompanyName
    WHERE
        v.Date = s.Date
    AND
        v.Date = r.Date;

Однако проблема, с которой я сталкиваюсь, - это дублирование данных;Я хотел бы получить уникальное количество посещений, поисков, отчетов по компании и дате.Возможно ли это?

1 Ответ

0 голосов
/ 12 октября 2018

Вам нужно сгруппировать по Дата и companyName после присоединения к таблицам и использовать метод агрегации SUM () для получения итоговых значений за каждый (дата, компания) группа.

CREATE VIEW V AS
    SELECT
        v.Date,
        v.CompanyName as Company,
        SUM(s.Searches) AS TotalSearches,
        SUM(r.Reports) AS TotalReports,
        SUM(v.Visits) AS TotalVisits
    FROM
        Visits AS v
    LEFT JOIN
        Searches AS s ON s.CompanyName = v.CompanyName AND s.Date = v.Date
    LEFT JOIN
        Reports AS r ON r.CompanyName = v.CompanyName AND r.Date = v.Date
    GROUP BY
        v.Date, v.CompanyName;
...