За последние 24 часа нас посетил 16491 программист и 1562 робота. Сейчас ищут 2089 программистов ...

Группировка по неделям

Тема в разделе "MySQL", создана пользователем GvOzD, 16 июн 2008.

  1. GvOzD

    GvOzD Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Есть таблица с полем datetime, куда постоянно вставляются строки.Делаю следующий запрос чтобы выяснить сколько записей было сделано за недели:
    [sql]SELECT DATE_FORMAT(date,'%Y-%u') AS date,count(*) AS count FROM table GROUP BY DATE_FORMAT(date,'%Y-%u')[/sql]
    В итоге я получаю номер недели в году и количество записей , для пользователя это очень неудобно.Как с помощью PHP и SQL привести к виду d.m.y (начало недели)-d.m.y (конец недели) , что более понятнее для юзера.
     
  2. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    [sql]select DATE_FORMAT(date, '%d.%m.%Y') AS date, count(*) AS count FROM table GROUP BY DATE_FORMAT(date,'%Y-%u')[/sql]
     
  3. GvOzD

    GvOzD Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    С помощью такого запроса получил желаемый результат , DarkElf спасибо за хитрость [:)]

    [sql]SELECT DATE_FORMAT(date,'%d.%m.%y') AS date,DATE_FORMAT(DATE_ADD(date,INTERVAL 6 DAY),'%d.%m.%y') AS end_date,count(*) AS count FROM table GROUP BY DATE_FORMAT(date,'%Y-%u')[/sql]
     
  4. mclaud

    mclaud Активный пользователь

    С нами с:
    15 фев 2007
    Сообщения:
    97
    Симпатии:
    0
    Адрес:
    Одесса
    Ещё как вариант, только была какая-то лажа с воскресеньем, кол-во новостей за текущую неделю:
    [sql]SELECT COUNT(*) FROM `table` WHERE (WEEK(`date`)=WEEK(CURDATE()))[/sql]