SQL如何使用order by语句查询数据表的多字段
假如我有一个数据表tab,里面有id、name,number,规格,部门等字段,现在我需要查询出所有字段的数据,并且按nane和number进行分组,请问sql语句怎么写...
假如我有一个数据表tab,里面有id、name,number,规格,部门等字段,现在我需要查询出所有字段的数据,并且按nane和number进行分组,请问sql语句怎么写啊?
是group by 展开
是group by 展开
3个回答
展开全部
先说说ORDER BY和GROUP BY的功能
假设一个表tab有一个id字段、一个Name字段,内容如下
id Name
3 张三
5 李四
1 王五
1 赵六
ORDER BY是排序
select id from tab order by id
这条SQL的结果应该是
id
1
1
3
5
GROUP BY是分组,相同的组别仅显示一次
select id from tab group by id
这条SQL的结果应该是
id
1
3
5
另外在select后接N个字段,比如id,Name两个字段,然后Group By后接id
select id,Name from tab group by id
这样的SQL是会报错的,因为你必须将group by以外的字段,用聚合函数聚合起来(如max,min,Count等)
然后回到上面的问题:
如果题主的原意是用GROUP BY,按nane和number字段分组,那么其他字段你打算如何聚合,是用MAX取最大值、MIN取最小值、Count统计出现的次数、还是利用自定义函数(Mysql和ORACL有系统自带函数)来将其拼接文本
如果题主的原意是用ORDER BY,按nane和number字段排序
select * from tab ordey by name ASC,number ASC
--ASC是正序排列,DESC是倒序排列,不填写的情况下默认ASC
更多追问追答
追问
我是想用group by,而且其他字段我只需要原样输出就可以了,不做处理,其他字段是字符型的,也不能使用聚合函数
我是想用group by,而且其他字段我只需要原样输出就可以了,不做处理,其他字段是字符型的,也不能使用聚合函数
展开全部
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
例子详解:
原始的表 (用在例子中的):
Orders 表:
Company OrderNumber
IBM 3532
Apple 4698
例子
以字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
结果:
Company OrderNumber
Apple 4698
IBM 3532
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
例子详解:
原始的表 (用在例子中的):
Orders 表:
Company OrderNumber
IBM 3532
Apple 4698
例子
以字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
结果:
Company OrderNumber
Apple 4698
IBM 3532
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-06
展开全部
order by是排序 group by 是分组
select * from tab group by name,number
select * from tab group by name,number
更多追问追答
追问
提示列id无效,没有包含在聚合函数或group by子句中
追答
你用的是什么数据库,或者说你的表是不是有问题呢?这个在access和mysql中都是很正常的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询