Как вывести количество записей за день, неделю, месяц, год. Начиная с этого д/н/м/г
30
..
«date»:»2020-6″,»c_name»:»0″
«date»:»2020-7″,»c_name»:»0″
«date»:»2020-8″,»c_name»:»0″
«date»:»2020-9″,»c_name»:»0″
«date»:»2020-10″,»c_name»:»0″
«date»:»2020-11″,»c_name»:»0″
«date»:»2020-12″,»c_name»:»0″
«date»:»2021-1″,»c_name»:»0″
«date»:»2021-2″,»c_name»:»0″
«date»:»2021-3″,»c_name»:»0″
«date»:»2021-4″,»c_name»:»0″
«date»:»2021-5″,»c_name»:»0″
«date»:»2021-6″,»c_name»:»0″
«date»:»2021-7″,»c_name»:»0″
«date»:»2021-8″,»c_name»:»0″
«date»:»2021-9″,»c_name»:»0″
«date»:»2021-10″,»c_name»:»0″
«date»:»2021-11″,»c_name»:»0″
«date»:»2021-12″,»c_name»:»0″
«date»:»2022-1″,»c_name»:»0″
«date»:»2022-2″,»c_name»:»0″
«date»:»2022-3″,»c_name»:»3″
«date»:»2022-4″,»c_name»:»1″
«date»:»2022-5″,»c_name»:»3″
«date»:»2022-6″,»c_name»:»4″ -> начиная с текущего месяца
Да, возможно задача сложная. Я ни как не могу построить такой график. Тем более что я не могу вывести и год с месяцем вместе. Прошу пожалуйста, помогите с этой задачей, вывести такой график, желательно только по месяцам, а дальше со днями, годами, неделями я сам.
Функция SQL COUNT()
Оператор SQL COUNT() — функция возвращающая количество записей (строк) таблицы. Запись функции с указанием столбца (синтаксис ниже) вернет количество записей конкретного столбца за исключением NULL записей.
Функция SQL COUNT() имеет следующий синтаксис:
COUNT(column_name)
Запись функции с указанием маски «*» вернет количество всех записей в таблице.
COUNT(*)
Примеры оператора SQL COUNT: Имеется следующая таблица Universities :
| ID | UniversityName | Students | Faculties | Professores | Location | Site |
| 1 | Perm State National Research University | 12400 | 12 | 1229 | Perm | psu.ru |
| 2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
| 3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
| 4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
| 5 | Higher School of Economics | 20335 | 12 | 1615 | Moscow | hse.ru |
| 6 | Ural Federal University | 57000 | 19 | 5640 | Yekaterinburg | urfu.ru |
| 7 | National Research Nuclear University | 8600 | 10 | 936 | Moscow | mephi.ru |
Пример 1. Вывести число записей таблицы, используя оператор SQL COUNT:
SELECT COUNT(*)
FROM Universities
Пример 2. Найти количество университетов расположенных в Москве, используя оператор SQL COUNT:
SELECT COUNT(*) FROM Universities WHERE Location = 'Moscow'
Пример 3. Найти количество университетов с больше чем 20 факультетами, используя оператор SQL COUNT:
SELECT COUNT(*) FROM Universities WHERE Faculties > 20
SQL — Урок 8. Группировка записей и функция COUNT()
Давайте вспомним, какие сообщения и в каких темах у нас имеются. Для этого можно воспользоваться привычным запросом:
А что, если нам надо лишь узнать сколько сообщений на форуме имеется. Для этого можно воспользоваться встроенной функцией COUNT(). Эта функция подсчитывает число строк. Причем, если в качестве аргумента этой функции выступает *, то подсчитываются все строки таблицы. А если в качестве аргумента указывается имя столбца, то подсчитываются только те строки, которые имеют значение в указанном столбце.
В нашем примере оба аргумента дадут одинаковый результат, т.к. все столбцы таблицы имеют тип NOT NULL. Давайте напишем запрос, используя в качестве аргумента столбец id_topic:
SELECT COUNT(id_topic) FROM posts;
Итак, в наших темах имеется 4 сообщения. Но что, если мы хотим узнать сколько сообщений имеется в каждой теме. Для этого нам понадобится сгруппировать наши сообщения по темам и вычислить для каждой группы количество сообщений. Для группировки в SQL используется оператор GROUP BY. Наш запрос теперь будет выглядеть так:
SELECT id_topic, COUNT(id_topic) FROM posts GROUP BY id_topic;
Оператор GROUP BY указывает СУБД сгруппировать данные по столбцу id_topic (т.е. каждая тема — отдельная группа) и для каждой группы подсчитать количество строк:
Ну вот, в теме с у нас 3 сообщения, а с — одно. Кстати, если бы в поле id_topic были возможны отсутствия значений, то такие строки были бы объединены в отдельную группу со значением NULL.
Предположим, что нас интересуют только те группы, в которых больше двух сообщений. В обычном запросе мы указали бы условие с помощью оператора WHERE, но этот оператор умеет работать только со строками, а для групп те же функции выполняет оператор HAVING:
SELECT id_topic, COUNT(id_topic) FROM posts GROUP BY id_topic HAVING COUNT(id_topic) > 2;
В результате имеем:
В уроке 4 мы рассматривали, какие условия можно задавать оператором WHERE, те же условия можно задавать и оператором HAVING, только надо запомнить, что WHERE фильтрует строки, а HAVING — группы.
Итак, сегодня мы узнали, как создавать группы и как подсчитать количество строк в таблице и в группах. Вообще вместе с оператором GROUP BY можно использовать и другие встроенные функции, но их мы будем изучать позже.
Онлайн-курс. Освойте востребованную профессию с зарплатой от 70 000 руб в месяц!
Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.
admin@site-do.ru
site-do.ru © 2009-2019 Копировать материалы сайта запрещено!
За нарушение авторских прав предусмотрена уголовная ответственность!
Телефон редакции +7(499)346-89-56
127051, г.Москва, Цветной бульвар, д. 11, стр. 6, офис 405.
Как узнать количество записей в SQL-выборке

Очень часто нам не требуется извлекать данные из таблицы, однако, нам необходимо узнать количество записей в определённой SQL-выборке, в частном случае, количество записей в таблице. Вот как узнать количество записей в SQL-выборке, я расскажу в этой небольшой статье.
На самом деле всё очень просто, и нам нужна всего лишь функция COUNT():
SELECT COUNT(*) FROM `table` WHERE `field_1`=’value_1′
После выполнения данного запроса будет возвращён result_set, в котором будет храниться массив, содержащий элемент COUNT(*) со значением количества записей в таблице «table«, где поле «field_1» имеет значение «value_1«.
Другой пример. Допустим, надо узнать просто количество записей. Тогда то же самое, но без WHERE:
SELECT COUNT(*) FROM `table`
И давайте, напоследок, подкину ещё один пример. Допустим, Вам необходимо подсчитать количество уникальных записей в таблице:
SELECT COUNT(DISTINCT `field_1`) FROM `table`
Вот такой нехитрой функцией COUNT() можно легко узнавать количество записей в SQL-выборке, не извлекая при этом сами записи и экономя ресурсы.

![]()
Создано 12.03.2012 12:53:32
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 45 ):
lion337 01.06.2012 15:11:04
Михаил, здравствуйте! Хотел бы попросить у Вас помощи. Почему на реальном хостинге этот запрос не работает $res_articles = $mysqli->query(«SELECT id,title,cp_title,description,images,author,DATE_FORMAT(date,’%d %M %Y’) as date FROM articles WHERE tg=’0′ ORDER BY id DESC LIMIT $shift,$num_data»); Проблема в — LIMIT $shift,$num_data — не пойму почему не работает с переменными! Перепробовал все варианты, уже два дня голову ломаю :((( Если Вас не затруднит можете дать совет.
Admin 01.06.2012 15:35:02
Вряд ли дело в хостинге, Вы проверьте значения переменных shift и num_data. А также «не работает» понятие растяжимое. Выдаются ли какие-нибудь ошибки? Или просто пустой результат выходит?
lion337 01.06.2012 15:41:31
Пустой результат, но когда убираю LIMIT $shift,$num_data или пишу вместо переменных LIMIT 2, 5 то всё ОК. А может переменные привести к числу через integer?
Admin 01.06.2012 15:49:10
Тогда проблема в значении переменных, можете ещё попробовать через соединение строк: «LIMIT «.$shift.», «.$num_data
lion337 01.06.2012 15:53:43
Я так пробовал всё равно пустой результат, но в переменных лежат числа я проверял конечно я не проверял на int
Admin 01.06.2012 15:55:51
Посмотрите, что в этой строке (всё ли правильно): echo «SELECT id,title,cp_title,description,images,author,DATE_FORMAT(date,’%d %M %Y’) as date FROM articles WHERE tg=’0′ ORDER BY id DESC LIMIT $shift,$num_data»;
lion337 01.06.2012 16:06:07
Сейчас проверяю, главное что на localhoste всё работает
lion337 01.06.2012 18:31:16
Вывод после echo — SELECT id,title,cp_title,description,author,images,DATE_FORMAT(date,’%d %M %Y’) as date FROM articles WHERE tg=’0′ ORDER BY id DESC LIMIT -10,10.
Admin 01.06.2012 18:51:05
Видите, что запрос неправильный? Вот и подумайте, почему -10 подставляется.
lion337 01.06.2012 18:54:12
Спасибо Михаил за помощь разобрался просто в функции не изменил один параметр
