【问题标题】:select every top 1 row and 100th row value from table with 10000 rows从具有 10000 行的表中选择每个前 1 行和第 100 行值
【发布时间】:2018-07-14 06:02:45
【问题描述】:

我有一个包含 10000 多行的表。我正在尝试选择具有 where 子句并在循环中将表除以 100 的每个前 1 行和前 100 行的值。

Ex 显示在屏幕截图中

【问题讨论】:

  • 所以你想要第 1、100、200、300、400 行?您是否有一些可以使用的特定排序属性(例如 id)?
  • 你能解释一下问题文本中的要求是如何产生你分享的输出的吗?
  • 到目前为止您尝试了哪些查询?您面临什么问题?
  • @derpirscher 是的,你是对的,我正在尝试对表进行其他操作,我想将该表分解为具有最小和最大 id 的小块。是的,我有 ordering 属性。
  • @ArunPrasath 请在您的问题中发布您的代码。所有人都很难在没有看到查询的情况下给出建议

标签: sql tsql sql-server-2014


【解决方案1】:

我认为是这样的:

select t.refid, lead(t.refid) over (order by refid) as next_refid
from (select t.*,
             row_number() over (order by refid) - 1 as seqnum
      from t
     ) t
where seqnum % 100 = 0

【讨论】:

  • 感谢您提供的脚本。它有助于完成它。
猜你喜欢
  • 2015-07-12
  • 1970-01-01
  • 2021-02-17
  • 2011-03-30
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
相关资源
最近更新 更多