Нужно написать запрос

Тема в разделе "Базы Данных", создана пользователем domazavoda, 12 фев 2019.

  1. domazavoda

    domazavoda

    Регистрация:
    12 фев 2019
    Сообщения:
    1
    Симпатии:
    0
    Вопрос

    MySQL



    Есть три таблицы:



    “site” (список сайтов). Поля: Site_id(int), url(varchar), user_id(int), status(int). Primary key: site_id

    ... ... ... ... ... ...

    1025 | "site1.com" | 275 | 1 ...

    1026 | "test_site.net" | 278 | 0 ...

    1027 | "site17.net" | 275 | 1 ...

    1028 | "test_test_site.fr" | 270 | 1 ...

    ... ... ... ... ... ...



    “site_area” (список блоков). Поля: site_area_id(int), site_id(int), name(varchar), status(int), size(varchar). Primary key: site_area_id

    ... ... ... ... ... ... ...

    628 | 527 | "sidebar_1" | 1 | "160x600" ...

    629 | 1025 | "in_article" | 1 | "300x250" ...

    670 | 1026 | "sidebar_1" | 1 | "300x600" ...

    672 | 1026 | "sidebar_2" | 0 | "300x250" ...

    ... ... ... ... ... ... ...



    “npm_site_area_stat_cache” (статистика). Поля: Date(date), Site_area_id(int), impression_count(int), revenue(demical). Primary key: date,site_area_id

    ... ... ... ... ... ...

    2017-01-12 | 628 | 57565 | 25.10 ...

    2017-01-13 | 628 | 61277 | 40.25 ...

    2017-01-13 | 629 | 1245 | 0.95 ...

    2017-01-13 | 651 | 889115 | 525.25 ...

    ... ... ... ... ... ...



    Нужно написать запрос, который выберет список сайтов (site), у которых есть более трёх активных (status=1) блоков (site_area).

    Выборка должна содержать четыре поля: id сайта, url сайта, общее число показов и общий доход на этом сайте (со всех его блоков) за последнюю неделю.
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.561
    Симпатии:
    1.475
    Код:
    SELECT
    *
    FROM site s
    INNER JOIN site_area sa ON s.site_id = sa.site_id AND sa.status = 1
    GROUP BY s.site_id
    HAVING count(s.site_id) > 3
    приблизительно так