使用MySQL- group by 來整理資料庫 2

哈囉大家好,我是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之後,可以得到新的表格,如下:

為什麼要使用 VIM? 使用MySQL- group by 來整理資料庫

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×