mysql 分组排序

sighshadow 2014-07-17 01:32:11
表t 有字段,假定有字段,uid time。
假定设定数据是 1 2014-7-17
1 2014-7-16
2 2014-8-18
1 2014-7-18
3 2014-8-18

期望得到数据是: (分组降序)
1 2014-7-18
1 2014-7-17
1 2014-7-16
2 2014-8-18
3 2014-8-18

这种sql语句怎么写,因为表内数据较多,所以希望sql语句可以稍微高效一点,多谢。
...全文
203 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjia1991 2014-07-24
  • 打赏
  • 举报
回复
select * from t order by uid asc,time desc
sftjun 2014-07-22
  • 打赏
  • 举报
回复

SELECT UID,TIME FROM TABLE ORDER BY TIME,UID DESC
你可以这样试试,采用两个排序,其它的我就想不到办法了,如果用分组的话、我实现不了你说的功能。
霜寒月冷 2014-07-22
  • 打赏
  • 举报
回复
MySql没有这 row_number函数。通过模拟这函数的方式实现 http://blog.sina.com.cn/s/blog_5165537f0100ys2b.html
zhenshz 2014-07-22
  • 打赏
  • 举报
回复
可以利用排名函数

select row_number()over(order by  UID,TIME ) pm,*  FROM TABLE 
sighshadow 2014-07-17
  • 打赏
  • 举报
回复
引用 1 楼 SQL77 的回复:
order by uid,`time` desc 这只是排序。高效不高效 不是这么简单来定。 如果你索引 上 就是这顺序的话,或者你表就是这顺序的话 可以快点
好的,感谢你的回答,不过可能是我没描述的清除,这是一张答题表。先回答的先被记录,如果按uid order by的话,他只是根据uid大小进行排序了。 比如说源数据是: 3 2014-7-17 1 2014-7-16 2 2014-8-18 1 2014-7-18 3 2014-8-18 希望的结果是: 3 2014-7-17 3 2014-8-18 1 2014-7-16 1 2014-7-18 2 2014-8-18
SQL77 2014-07-17
  • 打赏
  • 举报
回复
order by uid,`time` desc 这只是排序。高效不高效 不是这么简单来定。 如果你索引 上 就是这顺序的话,或者你表就是这顺序的话 可以快点

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧