sql数据分组后进行的分页操作

简介: 项目中碰到一个统计问题:生产派工单需要按名称进行分组,每一组的“标准工时”和“实际工时”需要进行按组统计。统计后的数据再进行分页显示。截图如下 UI图:    数据表结构图:    为了实现效果 模拟数据如下: create table Test ( ID int ...

      项目中碰到一个统计问题:生产派工单需要按名称进行分组,每一组的“标准工时”和“实际工时”需要进行按组统计。统计后的数据再进行分页显示。截图如下

UI图:

  img_b6d54bb88ef08e3c719ec344b304ea9f.jpe

数据表结构图:

  img_cc4383b2e8b5c24c37b4bd63270c2515.jpe

为了实现效果 模拟数据如下:

create table Test
(
	ID int identity(1,1) primary key not null,
	ProductName varchar(20),
	PassCount int,
	DisPassCount int,
	CraftHour numeric(18,2),
	StartDate datetime,
	EndDate datetime 
)

--插入数据

insert Test values('name1',10,1,1,'2001-1-1','2001-1-2')
insert Test values('name2',20,20,2,'2001-1-2','2001-1-3')
insert Test values('name2',20,20,2,'2001-1-4','2001-1-5')
insert Test values('name3',30,3,1,'2001-1-11','2001-1-12')
insert Test values('name4',13,3,1,'2001-1-12','2001-1-13')
insert Test values('name5',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name6',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name7',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name8',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name9',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name10',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name11',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name12',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name13',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name14',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name15',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name16',3,3,1,'2001-1-14','2001-1-15')
insert Test values('name17',3,3,1,'2001-1-14','2001-1-15')

--分页前
select ProductName as '产品名称',sum((PassCount+DisPassCount)*CraftHour) as '标准工时',sum(DATEDIFF(hour,StartDate,EndDate)) as '实际工时' from Test  group by ProductName 
order by ProductName desc 

--分页后(每一页5条记录)
select top 5 ProductName,sum((PassCount+DisPassCount)*CraftHour),sum(DATEDIFF(hour,StartDate,EndDate)) from Test group by ProductName,ID
having ProductName not in (select top (0*5) ProductName 
from Test group by ProductName order by ProductName desc)  order by ProductName desc 

--分组后的记录行数
select COUNT(*)  from (select distinct ProductName from Test) as a

模拟数据截图:

img_bb9985cf5ea40cd67f35faf6ea10e2d1.png
  应该还有更好的做法,希望你能提点建议,不胜感谢。
目录
相关文章
|
7天前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
19 0
|
7天前
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
15 0
|
7天前
|
SQL 数据管理 数据库
SQL中外键:维护数据完整性的关键
【8月更文挑战第31天】
20 0
|
7天前
|
机器学习/深度学习 SQL 数据采集
"解锁机器学习数据预处理新姿势!SQL,你的数据金矿挖掘神器,从清洗到转换,再到特征工程,一网打尽,让数据纯净如金,模型性能飙升!"
【8月更文挑战第31天】在机器学习项目中,数据质量至关重要,而SQL作为数据预处理的强大工具,助力数据科学家高效清洗、转换和分析数据。通过去除重复记录、处理缺失值和异常值,SQL确保数据纯净;利用数据类型转换和字符串操作,SQL重塑数据结构;通过复杂查询生成新特征,SQL提升模型性能。掌握SQL,就如同拥有了开启数据金矿的钥匙,为机器学习项目奠定坚实基础。
14 0
|
7天前
|
SQL 数据挖掘 Serverless
SQL 窗口函数简直太厉害啦!复杂数据分析的超强利器,带你轻松攻克数据难题,快来一探究竟!
【8月更文挑战第31天】在数据驱动时代,高效处理和分析大量数据至关重要。SQL窗口函数可对一组行操作并返回结果集,无需分组即可保留原始行信息。本文将介绍窗口函数的分类、应用场景及最佳实践,助您掌握这一强大工具。例如,在销售数据分析中,可使用窗口函数计算累计销售额和移动平均销售额,更好地理解业务趋势。
20 0
|
7天前
|
SQL 数据可视化 数据挖掘
SQL 在数据分析中简直太牛啦!从数据提取到可视化,带你领略强大数据库语言的神奇魅力!
【8月更文挑战第31天】在数据驱动时代,SQL(Structured Query Language)作为强大的数据库查询语言,在数据分析中扮演着关键角色。它不仅能够高效准确地提取所需数据,还能通过丰富的函数和操作符对数据进行清洗与转换,确保其适用于进一步分析。借助 SQL 的聚合、分组及排序功能,用户可以从多角度深入分析数据,为企业决策提供有力支持。尽管 SQL 本身不支持数据可视化,但其查询结果可轻松导出至 Excel、Python、R 等工具中进行可视化处理,帮助用户更直观地理解数据。掌握 SQL 可显著提升数据分析效率,助力挖掘数据价值。
14 0
|
2月前
|
SQL JSON 数据库
influxdb 端点使用http进行sql查询,写数据
influxdb 端点使用http进行sql查询,写数据
143 0
|
25天前
|
SQL 存储 分布式计算
|
19天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之sql查询如何导出全量数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
下一篇
DDNS