oracle 中GROUP BY的用法
来源:互联网 发布:淘宝 t460p 假货 编辑:程序博客网 时间:2024/04/29 05:46
问题:
select item.itemnum,item.in1,item.in4,inventory.location from item,inventory
where item.itemnum=inventory.itemnum
and inventory.location='DYB'
and item.in1='D/MTD/MRM'
GROUP BY ITEM.ITEMNUM
提示错误是NOT A GROUP BY EXPRESSION
答案:
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想
你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示
A B
1 abc
1 bcd
1 asdfg
select A,B from table group by A
你说这样查出来是什么结果,
A B
abc
1 bcd
asdfg
右边3条如何变成一条,所以需要用到聚合函数,比如
select A,count(B) 数量 from table group by A
这样的结果就是
A 数量
1 3
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
讨论:mysql和oracle对group by的解析是不一样的!
mysql:
SELECT s.SName, sc.COUNT(CID) c
FROM SC sc JOIN S s ON sc.SID = s. SID
GROUP BY s.SID
HAVING c = ( SELECT COUNT(*) FROM C )
oracle:
SELECT s.SID, s.SName, sc.COUNT(CID) c
FROM SC sc JOIN S s ON sc.SID = s.SID
GROUP BY s.SID, s.SName
HAVING c = ( SELECT COUNT(*) FROM C )
大家可以看到区别了,mysql对group by子句的限制有所放宽,除了集合函数之外的被查询字段也可以不参与分组。相反oracle则是严格要求,所以感觉mysql似乎更灵活一些。
欢迎大家批评指正
- oracle 中GROUP BY的用法
- oracle 中GROUP BY的用法
- Oracle中group by用法
- Oracle中group by用法
- Oracle中group by用法
- oracle 中GROUP BY的用法
- oracle group by用法
- 分组函数group by和Oracle中分析函数partition by的用法以及区别
- 分组函数group by和Oracle中分析函数partition by的用法以及区别
- oracle中 group by
- SQL中GROUP BY的用法
- SQL中GROUP BY的用法
- sqlserver 中group by的用法
- SQL中group by的用法
- SQL中group by的用法
- mysql中group by 的用法解析
- Oracle入门:Order By 和Group By 的基本用法
- oracle中group by的扩展
- Struts2 1.动态方法调用(1.指定method2.感叹号方式3.通配符方式)2.隐藏后缀名(三种方式)
- 程序运行提示缺少mfc110.dll等相关文件的解决办法
- M ubuntu 怎么进入命令行界面
- Group by与having理解
- Maven将本地jar包生成pom文件,在项目中引用打包到本地仓库。
- oracle 中GROUP BY的用法
- 详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
- Oracle的rollup、cube、grouping sets函数
- rollup与cube函数
- Tomcat上3种部署web项目的方法
- 利用magent搭建memcached集群
- Sort Colors II
- 005——hibernate的多对一映射
- Java环境变量详解