[英]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.