当前位置: 首页 > 知识库问答 >
问题:

如何用总计数进行高效分页

翟棋
2023-03-14

我们有一个web应用程序,帮助组织生物实验(用户描述实验和上传实验数据)。在主页中,我们展示了前10个实验,然后在上一个下一个1 2 3..30.

我虫子我如何使有效的总计数和分页。目前:

select count(id) from experiments; // not very efficient in large datasets

我想开发分页,总是执行相同的。记录计数不得影响分页或记录总数。

共有1个答案

常小白
2023-03-14

请进行如下查询:

 CREATE PROCEDURE [GetUsers]    
(    
 @Inactive  Bit = NULL,    
 @Name   Nvarchar(500),    
 @Culture   VarChar(5) = NULL,    
 @SortExpression VarChar(50),    
 @StartRowIndex Int,    
 @MaxRowIndex Int,  
 @Count INT OUTPUT      
)    
AS    
BEGIN    



  SELECT ROW_NUMBER()    
   OVER    
   (    
    ORDER BY    

    CASE WHEN @SortExpression = 'Name' THEN [User].[Name] END,    
    CASE WHEN @SortExpression = 'Name DESC' THEN [User].[Name] END DESC    

   ) AS RowIndex, [User].*    
   INTO #tmpTable   
   FROM [User] WITH (NOLOCK)    
   WHERE (@Inactive IS NULL OR [User].[Inactive] = @Inactive)       
   AND (@Culture IS NULL OR  [User].[DefaultCulture] = @Culture)    
   AND [User].Name LIKE '%' + @Name + '%'     



 SELECT *    
 FROM #tmpTable WITH (NOLOCK)    
 WHERE  #tmpTable.RowIndex > @StartRowIndex     
 AND #tmpTable.RowIndex < (@StartRowIndex + @MaxRowIndex + 1)    

 SELECT @Count = COUNT(*) FROM #tmpTable             

 IF OBJECT_ID('tempdb..#tmpTable') IS NOT NULL  DROP TABLE #tmpTable;    
END 
 类似资料:
  • 我有大量的数据,我希望高效地(即使用相对较小的Spark群集)执行其中一列的计数和区分操作。 如果我做什么似乎很明显,即加载数据到数据帧: 然后尝试运行查询: 我的群集只是崩溃和烧毁—抛出内存不足异常或挂起/崩溃/未完成操作。 我猜在这条路上的某个地方,有某种连接会让遗嘱执行人的记忆荡然无存? 当源数据大规模而目标数据不是时,执行这样的操作的理想方法是什么(上述查询中的域列表相对较短,应该很容易适

  • 问题内容: 我正在为我的系统中的实体实现“高级搜索”类功能,以便用户可以使用对该实体属性的多个条件(eq,ne,gt,lt,like等)来搜索该实体。我正在使用JPA的Criteria API动态生成Criteria查询,然后使用&支持分页。到现在为止一切都很好,但是现在我想在结果网格上显示结果总数,但是我没有看到直接获取Criteria查询总数的直接方法。 这是我的代码的样子: 我的结果集可能很

  • 我想做的是利用我对连续负二项分布进行抽样的事实,这是得到头部所需要的试验数的分布,也就是说,如果f(X)是这个分布,那么f(X)给出了在我们遇到头部之前有X个尾部的概率,其中X不必是整数。如果我能对这个分布进行采样,那么我能做的就是,如果X是尾部的数量,那么我就能看到X是大于还是小于信用的数量;如果大于,那么我们用完所有的学分,但什么也没有发生,如果小于或等于,那么好事发生了,我们从学分的数目中减

  • 假设我有一个字典数组: 我如何排序,使它是降序,按“id”排序? 但我知道这是错误的,也不是有效的。

  • 问题内容: 我有一个典型的客户/订单中设置的表,我想显示总 百分比 销售的特定客户负责。我可以像这样获得系统中的订单总数: 这样我就可以得到客户发出的订单总数: 如何将它们组合成一个查询,以返回特定客户的销售百分比?谢谢! 问题答案: MySQL: 编辑 我想如果我注意到 postgres 标签会有所帮助。我认为这是一个MySQL问题。 PostgreSQL: PS我的PostgreSQL生锈了,

  • 问题内容: 我想通过ORM进行一个非常简单的查询,但无法弄清楚。 我有三种模式: 位置(位置),属性(位置可能具有的属性)和评分(也包含得分字段的M2M“直通”模型) 我想选择一些重要的属性,并能够通过这些属性对我的位置进行排名-即,所有选定属性的总分更高=更好。 我可以使用以下SQL来获取所需的内容: 哪个返回 | 我可以通过ORM得到的最接近的是: 哪个返回 即所有的总和,而不是按位置分组。