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

MySQL SELECT语句如何按多列分组实现同用户同日期合并为单行

查询结果截图

以上是执行MySQL SELECT语句得到的输出结果,需要按照exp_date和username两个字段分组,实现同一日期下任意一个username仅对应一行数据的效果。
具体来说,2021-10-26日期下用户名为S.M.gadekar的记录,lodging、boarding、laundry、conveyance这几个列的取值需要合并展示在同一行中。

最优解决方案

直接在原查询的基础上嵌套一层聚合查询即可,语法如下:

SELECT
  exp_date,
  username,
  MAX(lodging) AS lodging,
  MAX(boarding) AS boarding,
  MAX(laundry) AS laundry,
  MAX(conveyance) AS conveyance
FROM (
  -- 此处替换为你原本的SELECT查询语句
  your_original_query_here
) AS raw_data
GROUP BY exp_date, username;

方案说明

  • 原查询结果中,同一日期、同一用户的多条记录里,四个费用类字段每列仅存在一个有效值,其余均为NULL
  • MAX()聚合函数会自动忽略NULL值,可以直接提取到对应列的唯一有效结果
  • 如果字段为数值类型,且同一分组下可能存在多个有效值需要累加的话,把MAX()替换为SUM()即可;如果是字符串类型需要合并多个值,可替换为GROUP_CONCAT()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:00