哈囉大家好,我是Ray!
今天想要跟大家分享group by 的更進一步的操作,如何使用group by 配合select 相對應的選項,新建一個表格,並在新表格內將資料重新整理爲我們需要的row and column。
首先,延續昨天的進度,如下圖所示,我們將降雨量根據天來做分類,那如果說今天我們需要月的降雨量,或者年雨量總和呢? 
請參考以下的code:
<?php // SELECT後面的year(date)以及month(date)表示SELECT這兩項資料, // 括號後的year以及month表示顯示出來的欄位名稱,sum表示加總括號內欄位資料的總和, // 括號內的rainfall爲欄位名稱,括號後的表示顯示出來的欄位名稱,一樣使用group by, // 使資料以月份以及年分來做顯示,order by 表示依照先後順序由先到後作排列。 $selectQuery = 'SELECT year(date) year, month(date) month, sum(rainfall) rainfall from rainfall_by_date group by month(date), year(date) order by year(date) asc, month(date) asc;'; // 向資料庫作select 請求 $selectResult = mysqli_query($dbc, $selectQuery); // 使用迴圈來重複請求,直到拿出所有位於$selectResult物件中的所有array while ($selectRow = mysqli_fetch_array($selectResult)) { // 將我們從rainfall_by_date取得的資料insert進新表格rainfall_by_month $insertQuery = 'INSERT INTO rainfall_by_month (year, month, rainfall) VALUES("' . $selectRow['year'] . '", "' . $selectRow['month'] . '", "' . $selectRow['rainfall'] . '")'; // 作insert請求 $insertResult = mysqli_query($dbc, $insertQuery); }
執行以上的script之後,可以得到新的表格,如下: 
留言