关于sql中的group by

曾经用access生成一个超复杂的sql语句,用了很多left join ...on  ,然后检索的每一个字段都必须加上group by,任何一个去掉都产生错误,我一直不明白为什么这样,然后昨天在csdn上面提问了,但是还是没能明白.今天再次用两表连接查询然后group by,好像页必须所有检索字段都加入才成.

eg:

select supplier.id as supplierid,supplier.shortname as supplier from supplier,dingdan_product where supplier.id=[dingdan_product].supplierid and [dingdan_product].dingdanid=4 group by dingdan_product.supplierid,supplier.id,supplier.shortname

时间: 2024-12-03 15:28:16

关于sql中的group by的相关文章

深入浅析SQL中的group by 和 having 用法

一.sql中的group by 用法解析: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)". 作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. 注意:group by 是先排序后分组! 举例说明:如果要用到group by 一般用到的就是"每"这个字, 例如现在有一个这样的需求:查询每个部门有多少人.就要用到分组的技术 select DepartmentID as '部门名称',

sql中的group by和having 用法解析

先先group by -- Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)". --它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. --注意:group by 是先排序后分组: --举例子说明:如果要用到group by 一般用到的就是"每这个字" 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术  代码如下 复制代码 select DepartmentID

sql group by-sql中的group by的用法

问题描述 sql中的group by的用法 user 表里面有name 和age 两个字段name age admin 34admin 56alex 38 我要对name 进行group by,select nameage from user group by name在我的印象中这句是报错的,因为不能这样显示age的,我说的对吗,而且我查询资料貌似也是不可以的啊,求解答 解决方案 对名字进行分组后,那age有多个,总得有个业务逻辑吧,比如年龄求平均(avg)或者年龄总和(sum),或者最大年龄

详解SQL中Group By的用法_MsSql

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 1.概述 "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个"小区域",然后针对若干个"小区域"进行数据处理. 2.原始表 3.简单Group By 示例1 select 类别, sum(数量) as 数量之和 from A group by 类别 返回结果如下表

sql中 order by 和 group by的区别_MsSql

order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有"聚合函数"来配合才能使用,使用时至少需要一个分组标志字段. 什么是"聚合函数"?           像sum().count().avg()等都是"聚合函数"          使用group by 的目的就是要将数据分类汇总. 一般如: select 单位名称,coun

sql中的 where 、group by 和 having 用法解析

废话不多说了,直接给大家贴代码了,具体代码如下所示: --sql中的 where .group by 和 having 用法解析 --如果要用到group by 一般用到的就是"每这个字" 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术 select DepartmentID as '部门名称',COUNT(*) as '个数' from BasicDepartment group by DepartmentID --这个就是使用了group by +字段 进行了分组

sql中 order by 和 group by的区别

order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有"聚合函数"来配合才能使用,使用时至少需要一个分组标志字段. 什么是"聚合函数"? 像sum().count().avg()等都是"聚合函数" 使用group by 的目的就是要将数据分类汇总. 一般如: select 单位名称,count(职工id),sum(职工工资) f

详解SQL中Group By的用法

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 1.概述 "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个"小区域",然后针对若干个"小区域"进行数据处理. 2.原始表 3.简单Group By 示例1 select 类别, sum(数量) as 数量之和 from A group by 类别 返回结果如下表

sql 中 case when 语法使用方法

没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 复制代码 代码如下: select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()),1) end+'月' as 月份 CASE 可能是 SQL 中被误用最多的关键字之一.虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法.例