Перейти к содержимому

Как вывести количество записей в sql

  • автор:

Как вывести количество записей за день, неделю, месяц, год. Начиная с этого д/н/м/г

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 можно использовать и другие встроенные функции, но их мы будем изучать позже.

Программирование на Python для начинающих

Онлайн-курс. Освойте востребованную профессию с зарплатой от 70 000 руб в месяц!

Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.

admin@site-do.ru
site-do.ru © 2009-2019 Копировать материалы сайта запрещено!
За нарушение авторских прав предусмотрена уголовная ответственность!
Телефон редакции +7(499)346-89-56
127051, г.Москва, Цветной бульвар, д. 11, стр. 6, офис 405.

Как узнать количество записей в SQL-выборке

Как узнать количество записей в 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.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. 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

    Спасибо Михаил за помощь разобрался просто в функции не изменил один параметр

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *