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

如何在SQL中使用分析函数基于ORDER、FLAG字段生成GRP分组列

实现方法

你需要的GRP列逻辑是按ORDER字段升序排序后,累计到当前行的FLAG为Y的总数量,用累加窗口函数就能直接实现,写法如下:

SELECT 
    `ORDER`,
    FLAG,
    SUM(CASE WHEN FLAG = 'Y' THEN 1 ELSE 0 END) OVER (ORDER BY `ORDER` ASC) AS GRP
FROM 你的实际表名

说明

  • 先用CASE表达式做值转换:FLAG为Y时返回1,其余情况返回0,方便后续累加计数
  • SUM()窗口函数指定按ORDER从小到大排序的窗口,对转换后的数值做累计求和,结果和你示例中的GRP列完全匹配
  • ORDER是SQL保留关键字,查询时建议用反引号(MySQL生态)、双引号(PostgreSQL、Oracle等生态)包裹,避免语法报错
  • 以上是标准SQL写法,所有支持窗口函数的数据库(MySQL 8.0+、PostgreSQL、SQL Server、Oracle等)都可以直接运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:57:02