数据库group by的用法规则

本文深入解析SQL语法中GroupBy的使用规范,强调select字段与GroupBy字段的一致性,以及GroupBy与其他子句(如Where、Having、Orderby)的执行顺序,帮助读者理解如何正确使用SQL进行数据聚合。

SQL语法的规定,用了group by,则select之后的字段除了聚集函数外都必须出现在group by中,你可以少于group by中的字段,但不能包含group by中没有的字段    (也就是说select后面的字段除了函数外都要在group by后面)

来于:https://www.cnblogs.com/jpfss/p/7390399.html

Group By 和 Having, Where ,Order by语句的执行顺序:

最后要说明一下的Group By, Having, Where, Order by几个语句的执行顺序。一个SQL语句往往会产生多个临时视图,那么这些关键字的执行顺序就非常重要了,因为你必须了解这个关键字是在对应视图形成前的字段进行操作还是对形成的临时视图进行操作,这个问题在使用了别名的视图尤其重要。以上列举的关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数),然后通过Group By关键字后面指定的分组条件将筛选得到的视图进行分组,接着系统根据Having关键字后面指定的筛选条件,将分组视图后不满足条件的记录筛选掉,然后按照Order By语句对视图进行排序,这样最终的结果就产生了。在这四个关键字中,只有在Order By语句中才可以使用最终视图的列名,如:

SELECTFruitName,ProductPlace,Price,IDASIDE,Discount
FROMT_TEST_FRUITINFO
WHERE(ProductPlace=N'china')
ORDERBYIDE

这里只有在ORDER BY语句中才可以使用IDE,其他条件语句中如果需要引用列名则只能使用ID,而不能使用IDE。

Group By语句在数据库中的用法是根据一定的规则进行分组。它的作用是将一个数据集根据规则划分成若干个小的区域,然后针对这些小区域进行数据处理。通过使用Group By语句,可以对数据进行分类统计、求和、计数等操作。它通常与聚合函数(如SUM、COUNT、AVG等)一起使用,来对每个分组进行计算操作。例如,可以使用Group By语句将一张表中的数据按照某个字段进行分组,然后对每个分组进行求和、计数等操作。在实际应用中,Group By语句经常与Join语句一起使用,用于对多个表进行联合查询,并对结果进行分组处理。总之,Group By语句是数据库中非常基础的一个知识点,它是进行数据统计和分组操作的重要工具之一。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [带你了解数据库group by用法](https://blog.csdn.net/weixin_33752045/article/details/91396199)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [MYSQL GROUP BY用法详解](https://download.csdn.net/download/weixin_38548817/13703936)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值