You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中基于符合条件的最新记录创建统计视图

实现方案

这个需求属于典型的行转列聚合场景,优先推荐兼容性更强的条件聚合写法,几乎支持所有主流SQL dialect(MySQL、PostgreSQL、Oracle、SQL Server等均可用)。

方法1:条件聚合(通用兼容版)

-- 创建目标视图,注意将下方 your_table_name 替换为你的实际表名
CREATE VIEW case_latest_operate_time AS
SELECT
  caseNo,
  MAX(CASE WHEN teamName = 'A' THEN timestamp END) AS `TeamA (Latest Time)`,
  MAX(CASE WHEN teamName = 'B' THEN timestamp END) AS `Team B(Latest Time)`
FROM your_table_name
GROUP BY caseNo
ORDER BY caseNo;

逻辑说明

  • 先按caseNo分组,把同一个案件的所有操作归到同一组
  • 用CASE WHEN按团队筛选时间,不符合团队条件的记录会返回NULL
  • 利用MAX聚合函数忽略NULL的特性,取到每个团队对当前案件的最大(也就是最新)操作时间

方法2:PIVOT语法(适配支持行转列语法的数据库)

如果你的数据库支持PIVOT语法(比如Oracle、SQL Server、PostgreSQL 11+、MySQL 8.0+),也可以用以下写法:

CREATE VIEW case_latest_operate_time AS
SELECT 
  caseNo,
  A AS `TeamA (Latest Time)`,
  B AS `Team B(Latest Time)`
FROM your_table_name
PIVOT (
  MAX(timestamp)
  FOR teamName IN ('A' AS A, 'B' AS B)
) AS pivot_result
ORDER BY caseNo;

内容的提问来源于stack exchange,提问作者anurag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:06:03