MySQL算术平均查询

时间:2015-12-20 09:08:55

标签: php mysql

我有一张描述餐馆仓库的桌子。在这个表格中,我有字段ID自动增量,WID,数量,unit_price,维度,名称。 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分配新的ID,并且将来当添加相同的产品时,WID将是相同的,但ID将会增加。 现在我的任务是输出不同的数据,但应该总结数量,并且应该计算单位价格的算术平均值。我有13条WID 65的记录,所有这些都有不同的单价,所以所有的单位价格应该相加并除以13.所有这些将输出像一条记录。有可能吗?

1 个答案:

答案 0 :(得分:1)

$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");

这对我有用,并给出了我想要的所有结果。