当前位置: 首页 > news >正文

SQL看最多的数据,但想从小到大排列看趋势

SQL 查询:从 test 表中获取本月的数据,并对数量最多的前10个流程按数量升序排序

假设表结构

  • test 表包含请求信息。
  • workflow_base 包含流程的基本信息。
CREATE TABLE test (requestid INT,          -- 请求IDworkflowid INT,         -- 流程IDcurrentnodetype CHAR(1),-- 当前节点类型createdate DATE,        -- 创建日期creater INT             -- 创建者ID
);

SQL 查询

-- 选择前10条记录并按数量升序排序
SELECT *
FROM (-- 选取数量最多的前10条记录SELECT TOP 10 *FROM (-- 子查询:计算每个流程的独特请求数量SELECT b.workflowname AS 流程,COUNT(DISTINCT a.requestid) AS 数量 FROM test a LEFT JOIN workflow_base b ON a.workflowid = b.idWHERE-- 筛选本月数据a.createdate >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)AND a.createdate < DATEADD(MONTH, 1, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1))GROUP BY b.workflowname) t1-- 按数量降序排列以选出前10条记录ORDER BY 数量 DESC
) t2
-- 对选出的前10条记录按数量升序排列展示
ORDER BY 数量 ASC;

解释

  • 子查询(t1):
    • 计算每个流程的独特请求数量。
    • 使用 LEFT JOIN 连接到 workflow_base 表来获取流程名称。
    • 使用 DATEFROMPARTS 和 DATEADD 函数筛选出本月的数据。
    • 按 b.workflowname 分组统计请求数量。
  • 中间查询(t2):
    • 从子查询结果中选取数量最多的前10条记录。
    • 使用 TOP 10 和 ORDER BY 数量 DESC 实现。
  • 最外层查询:
    • 对选出的前10条记录按数量升序排列展示。
    • 使用 ORDER BY 数量 ASC。

相关文章:

  • 家庭宽带的内网穿透实践
  • PyQt5完整指南:从入门到实践
  • 三维CAD皇冠CAD(CrownCAD)建模教程:工程图模块二
  • QT+opencv实现卡尺工具找圆、拟合圆
  • 虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property
  • uniapp -- 验证码倒计时按钮组件
  • 【starrocks】StarRocks 常见 HTTP 操作与导入错误排查指南
  • 使用Qt操作SQLite数据库
  • 《Effective Python》第2章 字符串和切片操作——Python 字符串格式化的现代选择f-strings
  • 使用Thrust库实现异步操作与回调函数
  • 一篇解决Redis:持久化机制
  • 从入门到精通:阿里云/腾讯云服务器深度优化实践
  • UUG杭州站 | 团结引擎1.5.0 OpenHarmony新Feature介绍
  • Web安全核心内容与常见漏洞总结
  • SQLServer如何为数据库创建只读账号,并测试是否只读成功。直接代入替换就行,全流程,新手替换复制即可。
  • (1-4)Java Object类、Final、注解、设计模式、抽象类、接口、内部类
  • WebGL图形编程实战【7】:变换流水线 × 坐标系与矩阵精讲
  • 深度解析 JWT:从原理到实战的全场景解决方案(附永久 Token 设计与集成系统实践)
  • 用模型预测控制算法实现对电机位置控制仿真
  • Linux服务器硬盘挂载小记录
  • 建设工程类招标信息发布网站/bing搜索引擎入口官网
  • 前沿设计公司网站/凡科建站的免费使用
  • 重庆网站建设公司费用/百度怎么推广自己的信息
  • 张家港网站制作建议/网站优化排名软件
  • 酒类网站建设方案/百度快速排名
  • 微信公众号的微网站开发/优化法治化营商环境