我通常使用數據透視表從原始數據中手動添加多個列,然後在字段中使用數據透視表並填充它,手動從Excel中準備報告和圖表。將數據透視表模板從csv(Excel)移動到MySQL
而且我想看看是否可以通過自動化:
一)加載數據到MySQL數據庫
b)使用幾個查詢添加額外列,然後準備數據準備被使用
c)圖表API/JQuery。
因爲我知道csv到mysql比較容易,所以我現在有了CSV格式的原始數據文件。
原始數據基本上包含不同的字段,主要是時間,日期時間和字符串。
使用PHP腳本,我可以使用LOAD DATA LOCAL INFILE
命令加載這些數據。
根據日期,我需要準備一個說明月份和本月列的月份名稱('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分鐘」和列b表示「持續時間> 5分鐘< 10分鐘」,如果它落在範圍內,我會將數字值設置爲1。
我看了一下自我加入的例子,但是在我的情況下,儘管做了幾次努力,但我卻無法使它工作。
我需要一些幫助才能讓我走,因爲我的觀點是,包含所有相關列的表比在運行時使用查詢更好。 此外,它是更好的先格式化數據並將其加載到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錯誤/約束。變通辦法是根本沒有幫助