Понякога може да се наложи да получавате почасови данни или да извличате записи за всеки час в MySQL. В тази статия ще разгледаме как да получите данни за всеки час в MySQL.
Как да получите данни за всеки час в MySQL
Ето стъпките за получаване на данни за всеки час в MySQL. Да кажем, че имате следната таблица sales(id, order_date, amount)
mysql> create table sales(id int, order_date datetime, amount int); mysql> insert into sales(id, order_date, amount) values(1, '2021-02-02 08:15:00',250), (2, '2021-02-02 08:30:00',200), (3, '2021-02-02 08:55:00',150), (4, '2021-02-02 09:15:00',125), (5, '2021-02-02 09:30:00',250), (6, '2021-02-02 09:45:00',200), (7, '2021-02-02 10:15:00',180), (8, '2021-02-02 10:30:00',125), (9, '2021-02-02 10:45:00',200), (10, '2021-02-02 11:15:00',250), (11, '2021-02-02 11:30:00',150), (12, '2021-02-02 11:45:00',200); mysql> select * from sales; +------+---------------------+--------+ | id | order_date | amount | +------+---------------------+--------+ | 1 | 2021-02-02 08:15:00 | 250 | | 2 | 2021-02-02 08:30:00 | 200 | | 3 | 2021-02-02 08:55:00 | 150 | | 4 | 2021-02-02 09:15:00 | 125 | | 5 | 2021-02-02 09:30:00 | 250 | | 6 | 2021-02-02 09:45:00 | 200 | | 7 | 2021-02-02 10:15:00 | 180 | | 8 | 2021-02-02 10:30:00 | 125 | | 9 | 2021-02-02 10:45:00 | 200 | | 10 | 2021-02-02 11:15:00 | 250 | | 11 | 2021-02-02 11:30:00 | 150 | | 12 | 2021-02-02 11:45:00 | 200 | +------+---------------------+--------+
Как да получа данни за всеки час в MySQL
Ето SQL заявката за получаване на данни за всеки час в MySQL.
mysql> select hour(order_date),sum(amount) from sales group by hour(order_date); +------------------+-------------+ | hour(order_date) | sum(amount) | +------------------+-------------+ | 8 | 600 | | 9 | 575 | | 10 | 505 | | 11 | 600 | +------------------+-------------+
В горната заявка ние просто групираме по дата_на_поръчка използвайки функция ЧАС и обобщена сума колона с помощта на функция SUM.
Функцията HOUR извлича номера на часа от дадена стойност за дата/час/дата и час, която може да бъде предоставена като литерален низ или име на колона.
Ако искате да покажете стойности за час с помощта на нотация AM/PM, като 8:00, 9:00 и т.н., тогава трябва да използвате функцията date_format, която ви позволява да промените формата на дадена стойност за дата/час/datetime, която може да бъде предоставена като буквален низ или име на колона.
mysql> select date_format(order_date,'%H %p') as hour, sum(amount) as total_sales from sales group by date_format(order_date,'%H %p'); +-------+-------------+ | hour | total_sales | +-------+-------------+ | 08 AM | 600 | | 09 AM | 575 | | 10 AM | 505 | | 11 AM | 600 | +-------+-------------+
Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!