选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
解决方案:指定 GROUP BY 时,选择列表中任何非聚合表达式内的每个属性名都应包含在GROUP BY列表中,或者GROUP BY表达式必须与选择列表表达式完全匹配。
错误用法:
select top 1000 订单ID,客户ID,订单号,实付金额,主订单ID FROM [TRA].[dbo].[订单]
group by 订单ID
order by 订单ID
报错:
正确用法1:
select top 1000 订单ID,min(客户ID),min(订单号),min(实付金额),min(主订单ID) FROM [TRA].[dbo].[订单]
group by 订单ID
order by 订单ID
正确用法2:
select top 1000 订单ID,客户ID,订单号,实付金额,主订单ID FROM [TRA].[dbo].[订单] group by 订单ID,客户ID,订单号,实付金额,主订单ID order by 订单ID
min最小值:在没用group分组时,此刻整张表为一个组,min返回的是这一列中数据最小的数据,
使用group分组时,min返回的是所在组的最小数据.
使用Group By子句的时候,一定要记住下面的一些规则:
(1)不能Group By非标量基元类型的列,如不能Group By text,image或bit类型的列
(2)Select指定的每一列都应该出现在Group By子句中,除非对这一列使用了聚合函数;
(3)不能Group By在表中不存在的列;
(4)进行分组前可以使用Where子句消除不满足条件的行;
(5)使用Group By子句返回的组没有特定的顺序,可以使用Order By子句指定次序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术