mysql去重分组关键词_Mysql利⽤groupby分组排序
昨天有个需求对数据库的数据进⾏去重排名,同⼀⽤户去成绩最⾼,时间最短,参与活动最早的⼀条数据进⾏排序。我们可以利⽤MySQL 中的group by的特性。
MySQL的group by与Oracle有所不同,查询得字段可以不⽤写聚合函数,查询结果取得是每⼀组的第⼀⾏记录。
利⽤上⾯的特点,可以利⽤mysql实现⼀种独特的排序;
⾸先先按某个字段进⾏order by,然后把有顺序的表进⾏分组,这样每组的成员都是有顺序的,⽽mysql默认取得分组的第⼀⾏。从⽽得到每组的最值。
select id, (@rowno := @rowno + 1) as rank,
score,
groupby分组(C.end_time - C.start_time) as timeConsuming,
start_time,
real_name,
tel,
expiry_code
from (SELECT *
FROM (select *
from t_q_order B
where B.score > 0
l IS NOT NULL
order by B.score desc,
(B.end_time - B.start_time) asc,
B.start_time asc) as A
group l
ORDER BY A.score desc,
(A.end_time - A.start_time) asc,
A.start_time asc)
as C,
(select @rowno := 0) t
where (C.end_time - C.start_time) > 5 limit 0,50;
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持80vps。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。