Я обычно готовлю отчеты и диаграммы из Excel вручную, используя сводную таблицу, добавляя несколько столбцов вручную из необработанных данных, а затем используя сводную таблицу для полей и заполняя ее.
И я хотел бы посмотреть, можно ли это автоматизировать с помощью:
а) Загрузка данных в базу данных mysql
б) Использование нескольких запросов для добавления дополнительных столбцов, а затем подготовка данных, готовых к использованию
в) API диаграмм/JQuery.
Поскольку я знаю, что csv для mysql проще, теперь у меня есть файл необработанных данных в формате CSV.
Необработанные данные в основном содержат различные поля, в основном время, дату, время и строки.
С помощью PHP-скрипта я смог загрузить эти данные с помощью команды LOAD DATA LOCAL INFILE
.
Основываясь на датах, мне нужно подготовить столбец y, в котором указаны месяцы, и этот столбец месяца должен быть обновлен именем месяца («январь» и т. д.) в зависимости от даты field(yyyy-mm-dd hh:mm:ss
) в определенном столбце x в той же таблице.
или, может быть, просто используйте это и ссылайтесь на графики (не уверен, насколько это сложно): -
mysql> select count(*) as Count, monthname(date) from alerts;
+-------+---------------------------------+
| Count | monthname(date) |
+-------+---------------------------------+
| 24124 | March |
+-------+---------------------------------+
1 row in set (0.19 sec)
Точно так же мне нужен столбец a с надписью «Продолжительность ‹ 5 минут» и столбец b с надписью «Продолжительность > 5 минут ‹ 10 минут», где я бы поместил числовое значение «1», если оно попадает в диапазон.
Я просмотрел примеры самосоединения, но не смог заставить его работать в моем случае, несмотря на несколько усилий.
Мне нужна помощь, чтобы начать работу, потому что я считаю, что таблица со всеми соответствующими столбцами лучше, чем использование запросов во время выполнения. Кроме того, лучше ли сначала отформатировать данные и загрузить их в mysql ИЛИ загрузить данные и отформатировать их? Пожалуйста, дай мне знать.
Спасибо
Обновление1
Хорошо, у меня это работает с самостоятельным соединением, как показано ниже.
UPDATE t1 p1 INNER JOIN ( select monthname(dt_received) AS EXTMONTHNAME from t1)p2 SET p1.MONTH=p2.EXTMONTHNAME;
но почему он обновляет весь месяц с одним и тем же названием месяца, хотя у dt_received есть другие месяцы? Кто-нибудь может помочь?
Update2 Опять же, все еще борясь, я узнал об ошибке/ограничении 1093. Обходные пути просто не помогают