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

SQL中如何按实例分组获取各指标正值对应的最新日期?

调整后可直接满足需求的SQL(兼容所有主流关系型数据库)

SELECT 
  "Instance",
  MAX(CASE WHEN "MetricID" = 'Metric1' THEN "Date" END) AS "Metric1_LatestDate",
  MAX(CASE WHEN "MetricID" = 'Metric2' THEN "Date" END) AS "Metric2_LatestDate",
  MAX(CASE WHEN "MetricID" = 'Metric3' THEN "Date" END) AS "Metric3_LatestDate"
FROM "API_Metric2"
WHERE "Value" > 0
GROUP BY "Instance"

调整说明

  • 解决未过滤无效值问题:新增WHERE "Value" > 0条件,会自动排除Value为0、NULL的记录,因为NULL和数值比较结果为UNKNOWN,不会被纳入统计范围。
  • 解决行式转列式输出问题:使用条件聚合逻辑,通过CASE WHEN匹配不同的MetricID取值,再嵌套MAX函数取对应指标的最大日期,最终仅按Instance分组,即可得到每行对应一个Instance、各指标最新日期单独成列的结果。

如果你的数据库支持PIVOT语法,也可以用PIVOT写法实现行转列,上述条件聚合写法的兼容性最高,可在MySQL、PostgreSQL、SQL Server、Oracle等所有主流数据库中直接运行。如果你的MetricID是数值类型,只需把CASE WHEN判断中的字符串引号去掉即可,比如改为WHEN "MetricID" = 1。

内容的提问来源于stack exchange,提问作者no name sry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:48:04