【发布时间】:2014-04-25 07:15:14
【问题描述】:
我通常使用数据透视表手动从 excel 中准备报告和图表,从原始数据中手动添加几列,然后在字段上使用数据透视表并填充它。
我想看看这是否可以通过以下方式自动化:
a) 将数据加载到 mysql 数据库中
b) 使用多个查询来添加额外的列,然后准备好供
使用的数据 c) 图表 API/JQuery。
因为我知道 csv 到 mysql 更容易,我现在有了 CSV 格式的原始数据文件。
原始数据基本上包含不同的字段,主要是时间、日期时间和字符串。
使用 PHP 脚本,我能够使用 LOAD DATA LOCAL INFILE 命令加载这些数据。
根据日期,我需要准备一个表示月份的 y 列,并且必须根据某些 x 列上的日期字段(yyyy-mm-dd hh:mm:ss) 使用月份名称('jan' 等)更新此月份列在同一张表中。
或者也许只是使用它并在图表中引用(不确定这会有多复杂):-
mysql> select count(*) as Count, monthname(date) from alerts;
+-------+---------------------------------+
| Count | monthname(date) |
+-------+---------------------------------+
| 24124 | March |
+-------+---------------------------------+
1 row in set (0.19 sec)
同样,我需要一列 a 表示“持续时间 5 分钟
我查看了自联接示例,但经过多次努力,我无法使其在我的案例中发挥作用。
我需要一些帮助才能让我继续前进,因为我认为包含所有相关列的表比在运行时使用查询要好。 另外,先格式化数据并将其加载到mysql还是加载数据并格式化更好? 请告诉我。
谢谢
更新1
好的,我通过下面的自我加入来完成这项工作
UPDATE t1 p1 INNER JOIN ( select monthname(dt_received) AS EXTMONTHNAME from t1)p2 SET p1.MONTH=p2.EXTMONTHNAME;
但是为什么即使 dt_received 有其他月份,它也会使用相同的月份名称更新所有月份? 有人可以帮忙吗?
更新2 再次,仍在挣扎,我意识到 1093 错误/约束。变通办法根本没有帮助
【问题讨论】: