有用的知识又增加了!!!!
总结:Oracle用group by 分组
有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)
否则就会出现错误。
需求描述:
根据A_id字段关联查询两个表数据并对字段B_ID分组取表数据
问题描述:
本没多想需要取什么字段,就先用了*来查询,即:
select b.* from B b LEFT JOIN A a on a.A_ID = b.A_ID where a.B_ID = '101' GROUP BY b.B_ID
那么问题就来了,> ORA-00979: not a GROUP BY expression 报错了
查看了这个解决了问题
[Err] ORA-00979: not a GROUP BY expression_bad00temper的博客-优快云博客
修改之后
select b.B_ID,b.B_NAME from B b LEFT JOIN A a on a.A_ID = b.A_ID where a.B_ID = '101' GROUP BY b.B_ID,b.B_NAME
以上即解决,如有不同观点或者补充欢迎留言!