sql排序 多字段排序问题

表A
a b
1 1
1 2
1 3
2 4
2 5
3 6
3 7
3 8

我需要先对a同样的数据进行分组并,然后在组内在进行以b为降序的排序
请问sql怎么写,最后出来的语句是个什么样的数组呢,谢谢

select * from 表A group by a,b order by a, b desc

上在语句适用的前提是a与b列数据没有重复的,否责会报错追问

可是这里的数据是有重复的,怎么才能优化语句呢,还有这里最后得出的是一个什么样的数组

追答

你上面所列的数据不算重复,重复是相对你所要查询的内容而定,所要查询的内容各个字段的值完全一样才叫重复,上面语名的结果如果表只有这两个字段的话,结果将如你上面图中所示的那样显示,所谓分组一般是与求和或统计个数一起使用的,即返回具有某个相同属性的记录某个字段的和是多少或有多少条这样相同的记录,当然了这里用select *不太好,一般用指定要查询的字段

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-11
select a,b from tb1 order by a ,b desc

sql 多条件排序问题
在SQL中,`order by` 后可以指定多个排序字段,按照你编写排序字段的顺序进行排序。同时,每个字段的排序方向,无论是升序或降序,同样支持并可以明确指定。默认情况下,若未指定排序方向,则为升序排序。例如,`order by column1(asc or desc),column2(asc or desc),column3(asc or desc),column4(...

sql ORDER BY 多个字段,排序变慢几十倍,求解?
SQL 中使用order By后,查询慢,加上主键 和 需要排序的字段组合排序 速度有很大的提升 在SQL Server查询数据测试,数据约三万条, 数据字段以时间倒序排序,sql:select ID, column1,column2,column3,record_date from table where ... order by record_date desc 此时查询数据需要15秒左中 ,...

SQL查询结果数据排序(二)
首先,单字段排序,如查询用户表中所有用户的姓名、年龄和地区,按照年龄升序排列,使用`ORDER BY user_age ASC`或`ORDER BY user_age`即可,因为默认情况下,order by默认升序。对于多字段排序,比如先按用户编号升序,再按年龄降序,写法为`ORDER BY user_id ASC, user_age DESC`。排序的优先级遵...

sql 多个字段排序
sql多个字段排序,使用order by操作就行,多字字段排序只需要添加多个排序条件,并且每个排序的条件之前用逗号分开;比如 order by id asc, name desc; 就是结果先根据id升序排列后,然后再依使用 name 倒序排列。

若sql语句中order by指定了多个字段,则怎么排序?
order by id desc,time desc 先是按 id 降序排列 (优先)如果 id 字段 有些是一样的话 再按time 降序排列 (前提是满足id降序排列)order by name, age desc name优先 name一样的话,就按age排序。后面再加第三列的话,也是一样 以此类推下去。

sql多条件多字段排序的教程
关于sql多条件多字段排序的教程 语句:复制代码 代码如下:select * from [User] order by [Password] desc,Id asc 在一个条件重复的情况下,使用第二个条件排序 如下:注意这里的`第 14,15条记录 (在Password相同的情况下,根据Id排序)语句:复制代码 代码如下:select top(5) * from (select ...

orderby多个字段排序原理
排序原理如下:在SQL语言中,使用ORDERBY关键字可以对查询结果进行排序。当使用多个字段进行排序时,需要按照先后顺序对字段进行排列,先按照第一个字段进行排序,如果第一个字段相同,则按照第二个字段进行排序,以此类推。如果到了最后一个字段仍然相同,则按照主键或唯一键升序排列。

SQL如何按两个字段排序,一个按倒序一个按升序?
1、首先双击一个表,如下图所示。2、着可以看到表的数据,如下图所示。3、然后点击高级下面的筛选,如下图所示。4、接着在底部第一行设置字段,如下图所示。5、然后在第二行设置升序还是降序,如下图所示。6、最后多个字段就多列即可,如下图所示。

SQL中多条件排序问题
第一步:确定输出内容,你要的字段为name,数据结果为b,d,a,c ;第二步:找规律,b、d的online为1;a、c的位说明是按online 降序;然后来看下 b 、d的online相同,viewnum为30和10,那么就是viewnum降序;如果a、c的viewnum也是降序那么规律就找到了,发现 a为40、c为20,确实是降序,满足...

SQL 多个字段值相加后排序问题
很简单,直接在order by后面进行加就可以了:升序:select from stor order by (A+B+C+D)降序:select from stor order by (A+B+C+D) desc

相似回答