Как разбить записи по часам, чтобы отобразить их в виде диаграммы? - PullRequest
3 голосов
/ 20 апреля 2010

У меня есть таблица SQL, подобная этой: sales(product,timestamp) Я хочу отобразить график с использованием Open Flash Chart, но я не знаю, как получить общий объем продаж за час за последние 12 часов. (в столбце отметки времени указана дата продажи)

В качестве примера я получу такой массив: array(12,5,8,6,10,35,7,23,4,5,2,16) каждое число - это общий объем продаж за каждый час.

Примечание: я хочу использовать php или только mysql для этого.

Спасибо

Ответы [ 3 ]

5 голосов
/ 20 апреля 2010
SELECT HOUR(timestamp),COUNT(*)
FROM sales
WHERE timestamp >= DATE_SUB(NOW(),INTERVAL 12 HOUR)
GROUP BY HOUR(timestamp)
4 голосов
/ 20 апреля 2010

SQL -

SELECT HOUR(timestamp), COUNT(product)
FROM sales
ORDER BY HOUR(timestamp)

Зациклите результат, чтобы получить его в массив.

РЕДАКТИРОВАТЬ: применение запрошенного, где условие для метки времени Unix

SELECT HOUR(timestamp), COUNT(product)
FROM sales
WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL 12 HOUR))
ORDER BY HOUR(timestamp)
0 голосов
/ 20 апреля 2010

Какой-то псевдокод:

foreach timestamp
  use date('G',timestamp) to get hour
  increment array value using the hour as key

Что-то в этом роде. Остерегайтесь часовых поясов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...