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

PostgreSQL实现按客户分组提取不同Tier区间的Value最大值

PostgreSQL 分组聚合实现指定Tier区间的Value最大值统计

原始数据表

Client  Tier    Value
A        1       10
B        2       20
C        1       30
B        3       40
A        2       40
B        1       50
C        2       60
A        3       70
A        4       50

期望查询结果

Client  max(1,2) Value  max(3,4) Value
A       40              70
B       50              40

实现SQL

SELECT 
    Client,
    MAX(CASE WHEN Tier IN (1, 2) THEN Value END) AS "max(1,2) Value",
    MAX(CASE WHEN Tier IN (3, 4) THEN Value END) AS "max(3,4) Value"
FROM 
    your_table_name
GROUP BY 
    Client
HAVING 
    MAX(CASE WHEN Tier IN (1, 2) THEN Value END) IS NOT NULL
    AND MAX(CASE WHEN Tier IN (3, 4) THEN Value END) IS NOT NULL;

代码说明

  • 用CASE WHEN筛选对应Tier区间的Value,搭配MAX聚合函数计算每个Client在该区间的最大值,无符合条件数据时返回NULL
  • GROUP BY Client按客户维度分组统计
  • HAVING子句过滤掉任意一个区间无有效数据的Client(比如示例中的C,没有Tier3/4的数据,因此被排除)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:56:03