Конференция "Базы" » MySQL: задачка про группировку без пропусков [MySQL]
 
  • DayGaykin © (28.08.15 15:29) [0]
    Есть таблица операций:

    CREATE TABLE hotel_test.ops (
     op_date date NOT NULL
     op_sum int(11) NOT NULL
    )
    ENGINE = MYISAM



    Данные:

    op_date     op_sum
    2015-08-24  10
    2015-08-24  20
    2015-08-25  30
    2015-08-27  40
    2015-08-27  35
    2015-08-29  15
    2015-08-29  12
    2015-08-30  44



    Составим запрос для получения общей суммы по датам с определенной даты по определенную. Это просто:
    SELECT op_date, sum(op_sum) FROM ops WHERE op_date BETWEEN ? AND ? GROUP BY op_date


    Например, с 24-ого по 29-ое получим:

    2015-08-24 30
    2015-08-25 30
    2015-08-27 75
    2015-08-29 27



    Теперь задача: необходимо составить такой запрос, который вернет суммы для каждой даты из промежутка, включая те, для которых нет операций:

    2015-08-24 30
    2015-08-25 30
    2015-08-26 0
    2015-08-27 75
    2015-08-28 0
    2015-08-29 27


    Хранимые процедуры использовать не разрешается.

    Задача из теста на собеседовании поставила в тупик соискателя и меня.
  • кгшзх © (28.08.15 15:51) [1]
    так как мускуле нет иерархических конструкций
    и в тупом собеседном вопросе пропусками (с какого-то фига)
    называют данные которых физически нет то предлагаю на тупой вопрос дать тупой вариант с юнионом по отсутствующим датам
 
Конференция "Базы" » MySQL: задачка про группировку без пропусков [MySQL]
Есть новые Нет новых   [118645   +50][b:0][p:0.001]