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

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。
http://www.lryc.cn/news/2378457.html

相关文章:

  • Go语言 Gin框架 使用指南
  • [Linux] vim及gcc工具
  • YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点
  • MySQL只操作同一条记录也会死锁吗?
  • 数据结构与算法——双向链表
  • MODBUS RTU调试助手使用方法详解
  • 自由学习记录(60)
  • 现代计算机图形学Games101入门笔记(三)
  • WeakAuras Lua Script <BiaoGe>
  • 计算机视觉与深度学习 | LSTM应用合集
  • 在Verilog中,逻辑右移(Logical Right Shift)和算术右移(Arithmetic Right Shift)的区别
  • Go语言 GORM框架 使用指南
  • STM32控制电机
  • 力扣刷题(第二十九天)
  • chrome 浏览器插件 myTools, 日常小工具。
  • Leaflet使用SVG创建动态Legend
  • 智慧校园(含实验室)智能化专项汇报方案
  • 第三十四节:特征检测与描述-SIFT/SURF 特征 (专利算法)
  • ORACLE数据库实例报错ORA-00470: LGWR process terminated with error宕机问题分析报告
  • 【前端优化】vue2 webpack4项目升级webpack5,大大提升运行速度
  • Nginx应用场景详解与配置指南
  • vue2 切换主题色以及单页面好使方法
  • React学习———CSS Modules(样式模块化)
  • MCP 与 Cloudflare 的结合:网络安全的新高度
  • JavaScript入门【1】概述
  • PyQt5 的使用
  • JavaScript【6】事件
  • STM32F10xx 参考手册
  • 使用Docker部署Nacos
  • 深度学习中ONNX格式的模型文件