如果有group子句,则将结果表按group中指定的列进行分组,该属性列值相等的元组为一组,通常会在每组中作用集函数。
接你上述的例子,假定先将having条件去除;
第一条语句是按barcode字段分组,进行求和;
第二条语句是按barcode,reason_code进行了分组,进行求和统计查询,这时的结果记录与第一条就已经不一样。
而having条件的作用限定分组求和记录值要大于3,在两条语句中作用是一样的。
查询语句很清楚了
1 查询以cID做为分组的 累加qty列的值,过滤条件是 累加值大于 3
2 查询以cID和reason_code 作为分组的列 ,累加qty的值,过滤条件是累加值 大于3
这2个查询结果肯定不一样的,因为分组不一样,第一个 只要 cID 不同就可以看做是不同的分组了,第二个 是cID 或者 reson_code不同 就会视为不同的分组
上面这两个sql语句能执行???
group by 就是分组 不过在select 后面的有的列名才能 放在group by后面,
上面你的第一个sql语句是按照cid分组
第二个是先按照cid分组,在按照reason_code分组.
1 个是按cID分组,1个是按照cID,reason_code分组..两个能一样吗?