Принятие дней в качестве статистического периода является общим требованием. Еженедельные и ежемесячные отчеты являются более распространенными потребностями. Для долгосрочных проектов даже требуется годовой отчет. я освоилmysql
Как реализовать годовую, ежемесячную и еженедельную статистику в ежедневной статистике?
1. Освоенные навыки: Статистика по дням
Просто реализовать статистический период в днях. Конкретно,date()
Функция может возвращать дату данных времени, то есть только год, месяц и день, без информации о часах, минутах и секундах. комбинироватьgroup by
Статистику можно получить по дням.
Есть много показателей данных, которые принимают дни как статистический период, Просто возьмем пример, например, количество новых зарегистрированных пользователей каждый день.
select
date(created_at) as 注册日期,
count(user_id) as 用户数
from
users
group by
注册日期
order by
注册日期
2. Делайте выводы из известного, расширяйте навыки
теперь, когдаdate()
функция доступна, то есть ли соответствующийyear
,month
,week
А как насчет других доступных функций? Это чисто мои рассуждения, так что попробуйте.
Конечно же. Но ложка дегтя в том, что недели и месяцы возвращаются без года. Когда объем данных охватывает годы, он суммирует данные за одинаковое количество недель или месяцев в каждом году. Как добиться某年某月
и某年某周
Шерстяная ткань? Если у вас есть запас знаний, чтобы рассуждать, если вы не найдете ответа, просто поищите его!
3. Поиск ответов
После поиска и попытки найти в mysql используйтеdate_format(column_name,'%Y-%m')
заменитьmonth()
может получить年月
ценность.
Если вы поместите ключевое слово, представляющее месяц месяцm
Как насчет недели? Попробуйте. Попробуйте отдельно:date_format(column_name,'%Y-%w')
иdate_format(column_name,'%Y-%W')
.
Результат возврата данных неверен? Не ожидаемые недели года. нижний регистрw
Возвращает день недели с заглавной буквыW
Возвращает английское название дня недели. как получить今年第几周
Это значение, реализовать статистический цикл еженедельного отчета?
4. Будьте в курсе нехватки очков знаний, проверяйте пропуски и заполняйте пробелы
Когда я учился программированию, мне нравилось рассуждать на основе того, что я уже знал, и расширять свои навыки. Обычно рассуждения могут преподнести сюрпризы.Когда рассуждений недостаточно, полезно искать Дафа. При поиске ответа на тот или иной вопрос часто можно обнаружить недостаток знаний. Например, здесь я понимаю, что не знаком с ключевыми словами или общим синтаксисом для выражения дат.
наткнулся при поиске66 статей, который хорошо организован.
Формат даты MySQL (формат) диапазон значений.
ценность | значение | |
---|---|---|
второй | %SS | Секунды в виде двух цифр (00,01, ..., 59) |
Минута | %я, %я | Две цифры минут (00,01, ..., 59) |
Час | %H | 24-часовой формат, двузначный час (00,01, ...,23) |
%h | 12-часовой формат, двузначный час (00,01,...,12) | |
%k | 24-часовой формат, количество часов (0,1,...,23) | |
%l | 12-часовой формат, часы в числовой форме (0,1,...,12) | |
%T | 24-часовой формат времени (ЧЧ:мм:сс) | |
%r | 12-часовой формат времени (чч:мм:сс AM или PM) | |
%p | AM AM или PM PM | |
неделю | %W | Название каждого дня недели (воскресенье, понедельник, ..., суббота) |
%a | Сокращение названия каждого дня недели (Вс,Пн,...,Сб) | |
%w | Обозначает неделю как число (0=воскресенье, 1=понедельник, ..., 6=суббота) | |
%U | Число указывает номер недели, причем воскресенье является первым днем недели. | |
%u | Число указывает номер недели, где понедельник — первый день недели. | |
небо | %d | Две цифры дня месяца (01,02,...,31) |
%e | Цифры обозначают количество дней в месяце (1,2,...,31) | |
%D | Английский суффикс указывает на количество дней в месяце (1-й, 2-й, 3-й...) | |
%j | День года в виде трех цифр (001 002, ..., 366) | |
Луна | %M | Английское название месяца (январь, февраль,..., декабрь) |
%b | Сокращенное название месяца (Jan, Feb, ..., Dec) | |
%m | Две цифры месяца (01,02,...,12) | |
%c | Цифры обозначают месяцы (1,2,...,12) | |
год | %Y | Четырехзначный год (2015, 2016...) |
%y | Двузначный год (15,16...) | |
вывод текста | %Слово | текст прямого вывода |
Повышение одного балла знаний до определенного балла знаний может вывести ваши знания и навыки на более высокий уровень.
5. Обращение за помощью также является социальным, прося людей прикрепить красные конверты
Приведенная выше таблица весьма полезна, но по-прежнему не отвечает на вопрос о том, как получить «неделю года».
Хотя это хорошая привычка активно искать ответ. Но я потратил много времени и не смог найти ответ, а есть люди, у которых одна цель помогать друг другу, почему бы не попросить людей это увидеть? Обучение – это, по сути, социальный акт. Когда я изучаю навык, мне нравится присоединяться к нескольким учебным группам с хорошей атмосферой. Я часто делюсь своими заметками о собственном опыте в группе, а также беру на себя инициативу помогать другим, чем могу, или задаю свои вопросы, чтобы вызвать обсуждение. Просить о помощи — это хорошее социальное поведение.
На этот раз я поделился своими сомнениями с группой по изучению программирования и приложил красный конверт, чтобы попросить совета. Я получил ответ быстро после того, как указал, использовалconcat()
функция конкатенации.
Чтобы все скопировали и узнали, поставьте код:
select
concat(date_format(created_at,'%Y-'),week(created_at)) as 年周,
count(user_id) as 用户数
from
users
group by
年周
order by
年周
6. Резюме
Подводя итог, mysql может пройтиdate_format()
иconcat()
,week()
Такие функции могут выполнять ежемесячные и еженедельные статистические требования к ежемесячным и еженедельным отчетам, обычно используемым при анализе данных. Ключевое утверждение:
date(column_name) as 年月日
date_format(column_name,'%Y-%m') as 年月
concat(date_format(column_name,'%Y-'),week(column_name) as 年周
В дополнение к пунктам знаний в этой заметке я также привожу свои собственные идеи по изучению и расширению навыков. Это вдохновило вас? Если есть, не забудьте оставить сообщение или поставить лайк и рассказать мне, и призвать меня поделиться больше.
Специальное заявление: данные в этой заметке являются локальной базой данных, предназначенной только для моего практического использования, а не официальными данными какого-либо веб-сайта продукта.