繁体   English   中英

GROUP BY一列和COUNT两列

[英]GROUP BY one column and COUNT two columns

我需要按供应商ID进行分组并计算未售出或失败的数量,但还要计算该供应商的销售金额。

|---vendor id---|---failed---|---sold---|
|    1234       |   FAILED   |          |
|    9876       |   FAILED   |          |
|    1234       |   GRADE A  |   sold   |
|    1234       |   GRADE A  |   sold   |
|    9876       |   GRADE A  |   sold   |

我已经尝试过在堆栈上发现的无数查询,我只是没有运气。

$sql = 'SELECT *,sold,COUNT(sold),COUNT(*) FROM wp_drives WHERE sold != "sold" AND grade != "Grade FAIL" GROUP BY vendor_id';
while($row = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td style='text-align: center;'>" .$row['vendor_id']. "</td>";
    echo "<td style='text-align: center;'><span class='qty'>".$row['COUNT(*)']."</span></td>";
    echo "<td style='text-align: center;'>" .$row['capacity']. "</td>";
    echo "<td style='text-align: center;'>" .$row['form_factor']. "</td>";
    echo "<td style='text-align: center;'>" .$row['rpm']. "</td>";
    echo "<td style='text-align: center;'><span class='sold'>".$row['COUNT(sold)']."</span></td>";
    echo "</tr>";
}

在我的表中,我将供应商分组,其中包含该组中所有硬盘的数量,然后一些已售出,需要显示该组中已售出的数量。 现在它只返回与销售数量相同的值。

在对数据进行分组时,不能使用* ,要分组的列应该是选择条件的一部分。 尝试这个

SELECT vendor_id,COUNT(*) as count 
FROM wp_drives 
WHERE sold != 'sold' AND grade != 'Grade FAIL' 
GROUP BY vendor_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM