将数据透视表模板从csv(Excel)移动到MySQL

我通常使用数据透视表手工从原始数据中手动添加多个列,然后在字段中使用数据透视表并填充它,从Excel中手动准备报告和图表。

我想看看这是否可以通过以下方式实现自动化:

a)将数据加载到mysql数据库中
b)使用几个查询来添加额外的列,然后准备好可供使用的数据
c)图表API / JQuery。

由于我知道csv到mysql更容易,我现在有CSV格式的原始数据文件。

原始数据主要包含不同的字段,主要是时间,date时间和string。

使用PHP脚本,我可以使用LOAD DATA LOCAL INFILE命令加载这些数据。

根据date,我需要准备一个说y个月的月份,这个月份的月份列必须根据date字段更新月份名称('jan'等) (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) 

同样,我需要一个表示“持续时间<5分钟”的列a和一个表示“持续时间> 5分钟<10分钟”的列b,如果它落在范围内,我会放置一个数值“1”。

我研究了自我join的例子,但是在我的情况下,尽pipe做了很多努力,我仍然无法实现。

我需要一些帮助才能让我走,因为我的信念是,与所有相关列的表比在运行时使用查询更好。 另外,是最好格式化数据,并将其加载到MySQL或加载数据和格式化? 请告诉我。

谢谢

UPDATE1

好的,我通过下面的自我连接得到了这个工作

 UPDATE t1 p1 INNER JOIN ( select monthname(dt_received) AS EXTMONTHNAME from t1)p2 SET p1.MONTH=p2.EXTMONTHNAME; 

但是为什么即使dt_received还有其他几个月,它也会使用同一个月份的名称更新所有月份? 有人可以帮忙吗?

Update2再次,仍然挣扎,我被意识到1093错误/约束。 解决方法根本没有帮助

与需要手动格式化的Excel不同,我发现使用查询来查询数据库要容易得多

这解决了这个问题

 UPDATE tablename p1 INNER JOIN ( select monthname(dt_received) AS EXTMONTHNAME from tablename )p2 SET p1.MONTH=p2.EXTMONTHNAME where monthname(p1.dt_received)=p2.EXTMONTHNAME; 

但是有人会知道,为什么需要14分钟才能改变36879行? 我如何优化它。