SQL中的GROUP BY未给出正确的结果

SQL中的GROUP BY未给出正确的结果,sql,Sql,在上面的提琴中,有4个不同的子ID,查询是按子ID分组的。但在分组后,所有子ID都为0 请说明为什么2子ID的结果不是10和20?我在询问中做错了什么?请让我知道。当您使用分组方式时,您会得到每组的结果。如果要跳过它们,请使用HAVING: SELECT SUM(shippingvalue) AS shippingvalue FROM t_product_purchase WHERE mpkid=5 GROUP BY subid HAVING shippingvalue <> 0

在上面的提琴中,有4个不同的子ID,查询是按子ID分组的。但在分组后,所有子ID都为0


请说明为什么2子ID的结果不是10和20?我在询问中做错了什么?请让我知道。

当您使用
分组方式时,您会得到每组的结果。如果要跳过它们,请使用
HAVING

SELECT SUM(shippingvalue) AS shippingvalue
FROM t_product_purchase 
WHERE mpkid=5 
GROUP BY subid
HAVING shippingvalue <> 0;
如果要在结果集中使用
subid
,请使用:

SELECT subid, SUM(shippingvalue) AS shippingvalue
FROM t_product_purchase 
WHERE mpkid=5 
GROUP BY subid
HAVING shippingvalue <> 0
选择subid,SUM(shippingvalue)作为shippingvalue
从t_产品购买
其中mpkid=5
按子ID分组
具有shippingvalue 0

在选择列表中包含subid,结果将更容易理解!是
mpkid
是唯一的
SELECT subid, SUM(shippingvalue) AS shippingvalue
FROM t_product_purchase 
WHERE mpkid=5 
GROUP BY subid
HAVING shippingvalue <> 0