Выберите тот же столбец с другим интервалом дат - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь выбрать одно и то же col из базы данных с другим интервалом даты и значением col.

Я пробовал его по этому коду, но я не знаю, как выбрать тот же col с другим интервалом даты.

SELECT
    table1.SellerAccount,
    table1.ASIN AS ASIN,
    SELECT AVG(table2.BuyBox) as sevenDaysBack, /* <- 7 days back */
    SELECT AVG(table2.BuyBox) AS twoWeeksBack, /* <- 13 days back */
    SELECT AVG(table2.BuyBox) as oneMonthBack, /* <- 30 days back */
    CURDATE() AS datum
FROM 
    table1
LEFT JOIN 
    table2 ON (table2.ASIN = table1.ASIN)
GROUP BY 
    table1.SellerAccount, table1.ASIN

Также используется подзапросом, но существует проблема с группировкой данных.Я получаю эту ошибку

Подзапрос возвращает более 1 строки

SELECT
    table1.SellerAccount,
    @ASIN := table1.ASIN AS ASIN,
    (SELECT AVG(table2.BuyBox) FROM table2 
     WHERE table2.DATE > NOW() - INTERVAL 7 DAY AND table2.ASIN = @ASIN 
     GROUP BY SellerAccountId) AS BuyBoxWeekBack,
    (SELECT AVG(table2.BuyBox) FROM table2 
     WHERE table2.DATE > NOW() - INTERVAL 14 DAY AND table2.ASIN = @ASIN 
     GROUP BY SellerAccountId) AS BuyBoxTwoWeekBack,
    (SELECT AVG(table2.BuyBox) FROM table2 
     WHERE table2.DATE > NOW() - INTERVAL 300 DAY AND table2.ASIN = @ASIN 
     GROUP BY SellerAccountId) AS BuyBoxMonthBack,
    CURDATE() AS date
FROM
    table1
GROUP BY 
    table1.SellerAccount, table1.ASIN

Я ожидаю, что выходные данные должны возвращать сгруппированные данные по SellerAccount и ASIN.И AVG купить коробку по ASIN и интервал дат.

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