parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......

Posted Leap李

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......相关的知识,希望对你有一定的参考价值。

分组目前已知partition by、group by

partition by用于给结果集分组分区,如果没有指定那么它把整个结果集作为一个分组,最后显示具体数据

group by:通过所查询的数据的某一字段或属性进行分组,最后显示组数据,而不是具体数据,因为select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

根据实例这里要用到的是partition by

1.主评论下的评论按着 时间正序最多只取前5条 

  针对主评论parentid字段,回评数量<=5

  rowindex=rownumber() over(partition by parentid order by Addtime asc)

  where rowindex<6

2.获取最新登录记录

  针对用户loginuid,loginname登录,获取最新的用户登录记录,则获取最新的第一条

  rowtindex=ROW_NUMBER() over(partition by loginuid,loginname order by addtime des)

  where rowtindex=1

以上是关于parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......的主要内容,如果未能解决你的问题,请参考以下文章

Mysql如何查询和字段中某个字或词相同的关键字?

sql ORDER BY 多个字段,排序变慢几十倍,求解?

mysql order by怎样多个时间字段排序

mysql group by 的用法,集合后取出指定的字段

ACCESS2003 查询条件设置 把字段里某个字改为空格或限期 记录仍显示在查询结果里

关系型数据库三大范式