Рисуем графики: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
(Новая страница: «мини»)
 
Немає опису редагування
Рядок 1: Рядок 1:
[[Файл:Programming graphs.png|мини]]
[[Файл:Programming graphs.png|мини]]
Нарисовать график несложно. Это делается в 2 шага:
1. Подготавливаем данные и сохраняем в базе данных
2. Выводим график :)
Поставим задачу: вывести график количества платежей на каждый день.
Количество платежей:
<pre>
SELECT UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time))) tm, COUNT(*) n
FROM pays GROUP BY tm ORDER BY tm
</pre>
Пояснение:
1. Платежи хранятся в таблице pays
2. COUNT(*) n - считает количество записей и записывает в "переменную" n (запись в n исключительно для удобства)
3. UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time))) tm - довольно ссложная конструкция. Проанализируем по частям:
3.1. Поле time хранит и дату и время платежа. А нам нужна только дата. Т.е. нужно отброссить время
3.2. Время можно отбросить командой DATE()

Версія за 17:52, 23 квітня 2021

Нарисовать график несложно. Это делается в 2 шага: 1. Подготавливаем данные и сохраняем в базе данных 2. Выводим график :)

Поставим задачу: вывести график количества платежей на каждый день.

Количество платежей:

SELECT UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time))) tm, COUNT(*) n
FROM pays GROUP BY tm ORDER BY tm

Пояснение: 1. Платежи хранятся в таблице pays 2. COUNT(*) n - считает количество записей и записывает в "переменную" n (запись в n исключительно для удобства) 3. UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time))) tm - довольно ссложная конструкция. Проанализируем по частям: 3.1. Поле time хранит и дату и время платежа. А нам нужна только дата. Т.е. нужно отброссить время 3.2. Время можно отбросить командой DATE()