我有一张描述餐厅仓库的桌子。在此表格中,我具有字段ID自动递增,WID,数量,单价,尺寸,名称。
ID是唯一的,但让我展示一个php脚本,该脚本描述了插入时我在做什么

if(isset($_POST['refill_date'])){
    $id = intval($_POST['item_id']);
    $wid = intval($_POST['item_wid']);
    $name = $_POST['name'];
    $qty = floatval($_POST['quantity']);
    $dimen = $_POST['dimension'];
    $tp = floatval($_POST['total_price']);
    $up = floatval($_POST['unit_price']);
    $dist_id = intval($_POST['dist_id']);
    $waybill = $_POST['waybill'];
    $refill_date = $_POST['refill_date'];
    if(!empty($wid) && !empty($id)){
        $insert = $MySQL->query("INSERT INTO warehouse (wid,name,quantity,dimension,unit_price,refill_date,distributor_id,waybill) VALUES ($wid,'$name',$qty,'$dimen',$up,'$refill_date',$dist_id,'$waybill')");
        $update = true;
    }else{
        $insert = $MySQL->query("INSERT INTO warehouse (name,quantity,dimension,unit_price,refill_date,distributor_id,waybill,date) VALUES ('$name',$qty,'$dimen',$up,'$refill_date',$dist_id,'$waybill',now())");
        $wid = mysql_insert_id();
        $update = $MySQL->query("UPDATE warehouse SET wid = $wid WHERE id = $wid");
    }
    if($insert === true && $update === true)
        echo "success";
    else
        echo "failure";
    exit;
}


因此,您可以看到,如果不存在该产品,它将创建一个新产品并将新ID分配给WID,并且将来在添加同一产品时,WID将相同,但ID将增加。
现在,我的任务是输出不同的数据,但是应该对数量求和,而单价应该计算出算术平均值。我有13个WID为65的记录,所有这些都有不同的单价,因此所有单价应加起来并除以13。所有这些将像一条记录一样输出。有可能吗?

最佳答案

$MySQL->query("SELECT DISTINCT id,wid,name,SUM(`quantity`) `QTY`,dimension,AVG(`unit_price`) `AVG`,refill_date,date,edit_date,distributor_id,waybill FROM warehouse GROUP BY wid LIMIT 20 OFFSET $offset");


这为我工作,并提供了我想要的所有结果。

关于php - MySQL算术平均查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34379456/

10-09 01:09