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