[英]MySQL: Group by two columns and sum
建立庫存系統。 我有很多產品,每個產品都有三個不同的變量。 因此,對於庫存總量,我想按兩列(產品和尺寸)和總數量進行分組以獲得庫存總量。
產品 | 尺寸 | 數量 |
---|---|---|
小工具一 | 2 | 275 |
小工具一 | 2 | 100 |
小工具二 | 3 | 150 |
小工具二 | 2 | 150 |
我想要的輸出:
產品 | 尺寸 | 數量 |
---|---|---|
小工具一 | 2 | 375 |
小工具二 | 3 | 150 |
小工具二 | 2 | 150 |
我想出了如何按一列分組並使用以下代碼求和:
$query = "SELECT product, SUM(Quantity) FROM inventory GROUP BY product";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Total ". $row['product']. " = ". $row['SUM(Quantity)'];
echo "<br />";
}
?>
我只是堅持按兩列分組。 是否可以? 或者我應該只為三種尺寸創建三種不同的產品並消除該列? 謝謝。
根據您的示例表,您似乎希望對product
而不是id
進行分組。 您只需要將Size
列添加到SELECT
列表和GROUP BY
$query = "SELECT
product,
Size,
SUM(Quantity) AS TotalQuantity
FROM inventory
GROUP BY product, Size";
請注意,我添加了一個列別名TotalQuantity
,這將允許您通過更合理的$row['TotalQuantity']
而不是$row['SUM(Quantity)']
更輕松地從獲取的行中檢索列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.