Статьи

Кому нужна графика? Создать диаграммы в SQL

Круговая диаграмма SQL Это одна из самых впечатляющих демонстраций SQL, которые я видел. Шломи Ноах, консультант по базам данных из Израиля, разработал один SQL-запрос, который анализирует таблицу и генерирует круговую диаграмму в искусстве ASCII.

В блоге Шломи, круговой диаграмме SQL , представлен полный пошаговый анализ того, как это было достигнуто. В итоге:

  1. Значения из одной таблицы проверяются и рассчитываются общие суммы.
  2. На основании суммируемых сумм, коэффициенты накопления рассчитываются в диапазоне от 0 до 1 и в диапазоне от 0 до 2 * PI (радианы по всему кругу).
  3. Затем создается таблица координат. Это начинается с нуля в верхнем левом углу и увеличивается в соответствующих значениях до максимального размера в правом нижнем углу.
  4. Таблица координат используется для генерации таблицы градусов относительно центра таблицы.
  5. Исходные данные таблицы затем сопоставляются с таблицей градусов, назначается символ ASCII для каждого «цвета», и все, что находится вне круга, устанавливается в качестве пробела.
  6. Наконец, легенда добавлена.
 + ------------------------------------------------- --------------------------------------------- +
 |  круговая диаграмма |
 + ------------------------------------------------- --------------------------------------------- +
 |  |
 |  ;;;;;;;;;;;;;;;;;;;;;;;;;  |
 |  OOOOOOOO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  |
 |  ooooooooooooooo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  |
 |  oooooooooooooooooooo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  |
 |  ооооооооооооооооооо ;;;;;;;;;;;;;;;;;;;; ### |
 |  ооооооооооооооооо ;;;;;;;;; ########### |
 |  оооооооооооооооо ################## |
 |  ооооооооооооооо ################# |
 |  ооооооооооооооо ################# |
 |  оооооооооооооо ################ |
 |  оооооооооооооо ################ |
 |  оооооооооооооо :::::::::::::::: |
 |  ооооооооооооооо ::::::::::::::::: |
 |  ооооооооооооооо ::::::::::::::::: |
 |  ооооооооооооо :::: :::::::::::::::::: |
 |  ооооооо ::::::::::::: :::::::::::::::::::: |
 |  :::::::::::::::::::::::: :::::::::::::::::::::::: |
 |  :::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::: |
 |  :::::::::::::::::::::::::::::::::::::::::::::::::: ::::: |
 |  ::::::::::::::::::::::::::::::::::::::::::: |
 |  ::::::::::::::::::::::::: |
 |  |
 |  ## красный: 1 (10%) |
 |  ;;  синий: 2 (20%) |
 |  oo апельсин: 3 (30%) |
 |  :: белый: 4 (40%) |
 + ------------------------------------------------- --------------------------------------------- +

Как вы можете себе представить, результирующий запрос немного длинный и сложный. Я не буду воспроизводить это здесь, но пост Шломи содержит код, если вы хотите попробовать это сами.

Это очень умно. И совершенно сумасшедший.

Вы видели другие примеры странных SQL-запросов? Разместите свои ссылки ниже …