ora 中的SQL语句:group by后的条件对查询结果有何影响?

举个例子说吧:selectbarcode,sum(qty)fromtab_cgroupbycIDhavingsum(qty)>3;selectbarcode,reason... 举个例子说吧:
select barcode,sum(qty) from tab_c group by cID having sum(qty) >3;
select barcode,reason_code,sum(qty) from tab_c group by cID,reason_code having sum(qty) >3;
这两个句子查询到的结果不一样。但是去不清楚为什么。请大家指教。
展开
 我来答
疯魔波
2013-03-07 · 超过12用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:28.3万
展开全部
如果有group子句,则将结果表按group中指定的列进行分组,该属性列值相等的元组为一组,通常会在每组中作用集函数。
接你上述的例子,假定先将having条件去除;
第一条语句是按barcode字段分组,进行求和;
第二条语句是按barcode,reason_code进行了分组,进行求和统计查询,这时的结果记录与第一条就已经不一样。
而having条件的作用限定分组求和记录值要大于3,在两条语句中作用是一样的。
百度网友0319a0e
2013-03-07 · TA获得超过2.2万个赞
知道小有建树答主
回答量:2080
采纳率:85%
帮助的人:1141万
展开全部
查询语句很清楚了
1 查询以cID做为分组的 累加qty列的值,过滤条件是 累加值大于 3
2 查询以cID和reason_code 作为分组的列 ,累加qty的值,过滤条件是累加值 大于3

这2个查询结果肯定不一样的,因为分组不一样,第一个 只要 cID 不同就可以看做是不同的分组了,第二个 是cID 或者 reson_code不同 就会视为不同的分组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
单身Mvp
2013-03-07 · TA获得超过245个赞
知道小有建树答主
回答量:240
采纳率:100%
帮助的人:149万
展开全部
上面这两个sql语句能执行???
group by 就是分组 不过在select 后面的有的列名才能 放在group by后面,
上面你的第一个sql语句是按照cid分组
第二个是先按照cid分组,在按照reason_code分组.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yespurple
2013-03-07 · 超过16用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:44.6万
展开全部
1 个是按cID分组,1个是按照cID,reason_code分组..两个能一样吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式