Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Вывод результата запроса с COUNT с нулем используя ISNULL()

MySQL Add comments

Проходя одно из тестовые задания одно из них требовало вывести табличку с названиями регионов и количеством клиентов в каждом из них. Вообщем-то ничего сложного, я уже такое делал, но решил тоже записать в заметки. Почему? А потому, что там есть ISNULL(), о котором можно забыть и долго мучатся.

Пример без ISNULL():

MariaDB [test]> SELECT COUNT(c.id) AS count, r.name FROM clients c, regions r WHERE r.id = c.region_id GROUP BY r.id ORDER BY count DESC;
+-------+--------------+
| count | name         |
+-------+--------------+
|  1720 | Центр        |
|  1678 | Киев         |
|  1676 | Север        |
|  1670 | Восток       |
|  1653 | Юг           |
|  1603 | Запад        |
+-------+--------------+
6 rows in set (0.04 sec)


Пример с ISNULL(), который выводит регионы, в которых нет клиентов:

MariaDB [test]> SELECT IFNULL(COUNT(c.id), 0) AS count, r.name FROM regions r LEFT JOIN clients c ON (r.id = c.region_id) GROUP BY r.id ORDER BY count DESC;
+-------+------------------+
| count | name             |
+-------+------------------+
|  1720 | Центр            |
|  1678 | Киев             |
|  1676 | Север            |
|  1670 | Восток           |
|  1653 | Юг               |
|  1603 | Запад            |
|     0 | Пустышка         |
+-------+------------------+
7 rows in set (0.03 sec)

В принципе, всё наглядно понятно и дополнительные объяснения, думаю, не нужны. 🙂


11 июля, 2013  
Tags: isnull, maria, mysql, sql

Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2013 Gemini_13's Blog
G13.org.ua