如何在Mysql中书写select 以获得当前行的行号

如何在Mysql中书写select 以获得当前行的行号,第1张

SELECT

b.*

FROM

article

LEFT JOIN (

SELECT

@rownum :=@rownum + 1 AS rownum,

article.*

FROM

(SELECT @rownum := 0) r,

article

) b ON article.id = b.id

mysql没有rownum,只能这样进行计算

如果字符串可以用<,>符号比较的话(停电用手机无法验证能不能用)

假设你主键名称是Z,表为T

前一行:

select TOP1 Z from T where Z>'UUID' order by Z DESC

后一行:

select TOP1 Z from T where Z<'UUID' order by Z

合并:

在中间加 UNION ALL

这个不行就去查游标使用吧

接上一篇,这一篇主要介绍三类窗口函数,分布函数、前后函数和头尾函数。

【分布函数】

PERCENT_RANK基于RANK()函数的排序结果,percent_ranks列按照公式(rank-1) / (rows-1)带入rank值(row_num列)和rows值,其中,rank为RANK()函数产生的序号,rows为当前窗口的记录总行数。

CUME_DIST,分组内小于等于当前rank值的行数/分组内总行数,这个函数比percen_rank使用场景更多。可以用于计算大于等于或小于等于当前订单金额的订单比例有多少。

【前后函数】

分区中位于当前行前n行(LAG)或后n行(LEAD)的记录值。这两个函数在实际中还是有使用场景,比如要查询上一个订单距离当前订单的时间间隔,或者本条订单距离下一条订单的时间间隔。

如果要计算距离上一条订单的天数,只需要增加一列,用DATEDIFF函数把两个日期相减就可以了。如果是第一条订单,就会返回空值。

【头尾函数】

头尾函数FIRST_VAL和LAST_VAL函数,用来得到分区中的第一个或最后一个指定参数的值。可以用来查询每个用户第一次和最后一次的订单数据信息,然后就行比较 *** 作。需要注意的是,最后一条订单时间是基于当前订单时间来看的,所有是等于当前订单时间。

End

◆ PowerBI开场白

◆ Python高德地图可视化

◆ Python不规则条形图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8514896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存