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

MySQL分组查询如何获取同media_id下非空字段值?

解决分组查询中取非空字段值的问题

因为同一media_id对应的poster、url、page字段值完全一致,且至少有一行存在非空值,你可以用**MAX()或MIN()**这类聚合函数来获取这些字段的非空值——它们会自动忽略NULL,返回该分组下存在的有效值,不需要用WHERE IS NOT NULL过滤。

修改后的查询语句如下:

SELECT media_id, title, 
       MAX(poster) AS poster, 
       MAX(url) AS url, 
       MAX(page) AS page, 
       SUM(c_play) AS total_play, 
       SUM(c_time) AS total_time, 
       SUM(c_download) AS total_download 
FROM {$statistics_table} 
GROUP BY media_id, title 
ORDER BY $order $dir

说明

  • 用MAX()包裹poster、url、page后,分组时会自动提取该media_id下的非空值(同一分组内这些字段值一致,MAX和MIN结果相同,选哪个都可以)。
  • 统计求和的逻辑不受影响,依然能得到正确的total_play、total_time和total_download。

修改后单条结果示例:

{
    "media_id": "41",
    "title": "Beach sunset",
    "poster": "https://example.com/poster.jpg",
    "url": "https://example.com/video.mp4",
    "page": "/beach-sunset",
    "total_play": "5",
    "total_time": "42",
    "total_download": "2"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:07:08