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

GROUP BY分组查询时,如何额外获取In IP与Out IP字段?

解决方案

调整分组维度(推荐)

如果需要在同一行展示同一用户同一会话的入站、出站IP及日期,需将分组维度从name, ip, session调整为name, session,确保同一会话的所有记录合并为一组:

select
  name,
  session,
  max(case when activity = 'in' then date end) in_date,
  max(case when activity = 'out' then date end) out_date,
  max(case when activity = 'in' then `In IP` end) in_ip,
  max(case when activity = 'out' then `Out IP` end) out_ip
from view
group by name, session

该逻辑会:

  • 针对activity='in'的记录提取入站日期和入站IP
  • 针对activity='out'的记录提取出站日期和出站IP
  • 无论入站、出站IP是否相同,都能在同一行输出完整的会话信息

保留原有分组维度

若必须保留name, ip, session的分组方式,可直接通过聚合函数提取对应IP字段:

select
  name,
  ip,
  session,
  max(case when activity = 'in' then date end) in_date,
  max(case when activity = 'out' then date end) out_date,
  max(`In IP`) in_ip,
  max(`Out IP`) out_ip
from view
group by name, ip, session

但这种方式会将同一session下不同IP的记录拆分为多行,仅能展示当前分组对应的单方向IP(如示例中Y的session2会拆成两行,分别展示入站IP和出站IP)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:55:33