数据库排名sql,group by 分组查询按照时间最大值

原创 2015年07月10日 19:26:23

先给出类似的简单表

DROP TABLE IF EXISTS `TouTiaoAnchor`;
CREATE TABLE `TouTiaoAnchor` (
  `HourId` int(10) unsigned NOT NULL,
  `BetinTime` varchar(40) NOT NULL,
  `AnchorUid` int(11) unsigned NOT NULL,
  `ticket` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '闪耀值',
  `pic` varchar(500) DEFAULT '',
  `Info` varchar(128) NOT NULL,
  `star` int(11) NOT NULL COMMENT '星星值',
  `hitnum` int(11) NOT NULL COMMENT '连击次数,累加连续上一次,否则重新累计',
  `week` int(11) NOT NULL COMMENT '第几周',
  `flag` int(11) NOT NULL COMMENT '是否标识用来排序的。1表示用来排序的',
  PRIMARY KEY (`HourId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


目前做排行榜排行,需要按照group by进行排名,每一次排名都是按照 每一组的最开始的那条记录的字段出现,

比如,我最开始使用

select AnchorUid,pic,SUM(star)as starNum,BetinTime from  TouTiaoAnchor  GROUP BY AnchorUid  ORDER BY starNum DESC,BetinTime asc LIMIT 0,3

这个时候的betintIme 都是使用的是第一条记录的时间,但是,我是想使用最新的那条记录的时间


所以,完全达不到我的想要的。

经过分析,group by 是出现第一条的的数据。因此,那我就给他倒过来 在来一次。

这个时候,就要使用重新来个表。


select AnchorUid,pic,SUM(star)as starNum,BetinTime from (select * from TouTiaoAnchor ORDER BY BetinTime DESC ) tt GROUP BY AnchorUid  ORDER BY starNum DESC,BetinTime asc LIMIT 0,3

那这样,就解决问题了。




版权声明:本文为博主原创文章,未经博主允许不得转载。

MySQL之——GROUP BY分组取字段最大值

假设有一个业务场景,需要查询用户登录记录信息,其中表结构如下: CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` ...

MYSQL group by 分组后只取最大、最小值对应的记录方法

这里有2篇文章 综合起来就差不多了 工作忙 没时间整理 其实和其它数据库一样 并没有什么捷径 效率的话还是join比较快 MYSQL每个用户取1条记录的三种写法(group...

sql分别用日期、月、年 分组 group by 分组,datepart函数

--以2013-12-10 12:56:55为例 --convert(nvarchar(10),CreateDate,120)      =>      2013-12-10 --DATEPART(m...

MySQL之——GROUP BY分组取字段最大值

http://blog.csdn.net/l1028386804/article/details/54657412 转载请注明出处:http://blog.csdn.net/l1028386...

mysql获取分组后每组的最大值

1. 测试数据库表如下: create table test ( `id` int not null auto_increment, `name` varchar(20) not null de...

关于SQL分组取最大值的几中方式

假如我们有这么一张表: 如果想要取每个
  • looksun
  • looksun
  • 2014年11月16日 14:02
  • 3059

数据库专题——SQL语句统计每天、每月、每年的数据

SQL语句统计每天、每月、每年的数据 1、每年 select year(ordertime) 年, sum(Total) 销售合计 from 订单表 group by...

sql 分组查询,组内排序, 组内添加序号 (SQL Server 排序函数 ROW_NUMBER和RANK 用法总结)

-- 行号用法: ROW_NUMBER() OVER (ORDER BY SalesOrderID) AS RowNumber -- RANK() OVER(PARTITION BY Coun...

如何在SQL中先排序后分组

原文地址入口 标题说的有点奇怪,换句话说是让order by比group by先执行。还不明白对吧? 举个例子:实现场景,要实现QQ空间的动态消息,首先要按最新的消息查到QQ好友排序,然后再按好友分...

ORACLE用GROUP BY 来分组日期字段 按月分组

SELECT to_char(日期字段,'yyyymm'),sum(*)  FROM [TableName]  group by to_char(日期字段,'yyyymm'); SELECT t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库排名sql,group by 分组查询按照时间最大值
举报原因:
原因补充:

(最多只允许输入30个字)