SQL如何使用order by语句查询数据表的多字段

假如我有一个数据表tab,里面有id、name,number,规格,部门等字段,现在我需要查询出所有字段的数据,并且按nane和number进行分组,请问sql语句怎么写... 假如我有一个数据表tab,里面有id、name,number,规格,部门等字段,现在我需要查询出所有字段的数据,并且按nane和number进行分组,请问sql语句怎么写啊?
是group by
展开
 我来答
百度网友b79ba8e
推荐于2017-09-13
知道答主
回答量:18
采纳率:0%
帮助的人:12.6万
展开全部

先说说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等)


然后回到上面的问题:

  1. 如果题主的原意是用GROUP BY,按nane和number字段分组,那么其他字段你打算如何聚合,是用MAX取最大值、MIN取最小值、Count统计出现的次数、还是利用自定义函数(Mysql和ORACL有系统自带函数)来将其拼接文本

  2. 如果题主的原意是用ORDER BY,按nane和number字段排序



    select * from tab ordey by name ASC,number ASC
    --ASC是正序排列,DESC是倒序排列,不填写的情况下默认ASC
更多追问追答
追问
我是想用group by,而且其他字段我只需要原样输出就可以了,不做处理,其他字段是字符型的,也不能使用聚合函数
我是想用group by,而且其他字段我只需要原样输出就可以了,不做处理,其他字段是字符型的,也不能使用聚合函数
汐日南莘
2015-11-11 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7578万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-06
展开全部
order by是排序 group by 是分组
select * from tab group by name,number
更多追问追答
追问
提示列id无效,没有包含在聚合函数或group by子句中
追答
你用的是什么数据库,或者说你的表是不是有问题呢?这个在access和mysql中都是很正常的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式