有没有一种方法可以在mysql中按值跳过?
我正在尝试连续跳过MySQL表中的值,例如: 我这里有一张桌子有没有一种方法可以在mysql中按值跳过?,mysql,sql,rdbms,Mysql,Sql,Rdbms,我正在尝试连续跳过MySQL表中的值,例如: 我这里有一张桌子 time value t1 val1 t2 val2 t3 val3 t4 val4 t5 val5 我需要的结果是 time value t1 val1 t3 val3 t5 val5 希望你们能理解我的问题 类似地,我需要跳过2个值,3、4和5。假设顺序是由时间定义的,在MySQL 8+中,您可
time value
t1 val1
t2 val2
t3 val3
t4 val4
t5 val5
我需要的结果是
time value
t1 val1
t3 val3
t5 val5
希望你们能理解我的问题
类似地,我需要跳过2个值,3、4和5。假设顺序是由时间定义的,在MySQL 8+中,您可以使用row_number为按时间排序的每一行分配一个数字,然后使用模运算符%仅拾取奇数行
您可以在语句中使用 从未失效的表名称中选择* 值=2,4
您将得到结果,在值中您可以传递数组,因为您不需要值跳过是什么意思?如果你想跳过2个已经是3、4和5的值,或者我算错了吗?为什么预期结果中有val3和val5?正如我看到的那样,你按位置跳过记录,而不是按值跳过…@Nico我想这个概念叫做跳过计数,我想,这就是我试图实现的。我的提问技巧很抱歉。@Akina是的,我不仅跳过了值,甚至跳过了记录。你能提供示例值吗?两个时间戳之间的差异是多少?总是一样吗?@Akina:是的,那在MySQL中就行了。但这里更清楚的是,我在这个问题上犯了一个错误。我尝试使用跳过计数方法来跳过行本身。
SELECT x.time,
x.value
FROM (SELECT t.time,
t.value,
row_number() OVER (ORDER BY t.time) rn) x
WHERE rn % 2 = 1;