SQL中GROUP BY的用法

SQL中GROUP BY的用法
悬赏分:20 - 解决时间:2007-8-28 16:55
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的用法
谢谢了哈!

提问者: wanlp01071329 - 试用期 二级 最佳答案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 后面

 

SQLGROUP BY是一种用于将数据集按照指定的列进行分组的语句。它通常与聚合函数一起使用,以对每个分组进行计算和汇总。GROUP BY的基本原则是,select语句没有使用聚合函数的列必须在GROUP BY子句出现。 例如,假设我们有一个包含学生姓名和成绩的表格,我们想要按照班级对学生进行分组,并计算每个班级的平均成绩。我们可以使用以下SQL语句实现: SELECT 班级, AVG(成绩) FROM 学生表 GROUP BY 班级; 在这个例子,我们使用了GROUP BY子句将学生表按照班级进行分组。然后,我们使用AVG函数计算每个班级的平均成绩。最后,我们在SELECT语句选择了班级和平均成绩这两列。 需要注意的是,在GROUP BY子句不能使用SELECT子句定义的列的别名。因为GROUP BY子句的执行优先级高于SELECT,所以它并不知道SELECT定义的列的别名。此外,GROUP BY子句的结果是随机的,所以不能依赖于结果的顺序。 总结起来,GROUP BY是一种用于将数据集按照指定的列进行分组的语句,它通常与聚合函数一起使用。它的基本原则是,select语句没有使用聚合函数的列必须在GROUP BY子句出现。 #### 引用[.reference_title] - *1* *2* [SQLgroup by的用法总结](https://blog.csdn.net/u013242389/article/details/105331294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [详解SQLGroupBy的用法](https://blog.csdn.net/weixin_28875235/article/details/113678629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值