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

如何用SQL按产品编号分组统计货架-货箱组合的样本瓶数量?

问题背景

现有存储样本瓶位置的数据集,包含Product_number(产品编号)、Rack(货架)、Box(货箱)、Slot(插槽)列。需要统计每个产品编号下,不同货架+货箱组合对应的样本瓶数量,最终输出列需包含Product_number、Rack、Box、Number_of_vials(样本瓶数量)。

踩坑记录

之前尝试用COUNT(DISTINCT CONCAT(Rack, Box))来实现,结果不符合预期,问题根源在于数据中存在大量空值:当Rack或Box为空时,CONCAT结果会变成空字符串,导致不同的空值位置被错误归为同一组,无法准确拆分货架和货箱的组合。

正确解决方案

直接使用多列GROUP BY,同时按Product_number、Rack、Box三个字段分组,再统计每组的样本瓶数量。SQL语句如下:

SELECT
    Product_number,
    Rack,
    Box,
    COUNT(*) AS Number_of_vials
FROM
    your_sample_table -- 替换为你的实际表名
GROUP BY
    Product_number,
    Rack,
    Box;

补充说明

  • 多列GROUP BY会严格按照Product_number相同、Rack相同、Box相同的规则分组,空值也会被正确识别(SQL中空值在GROUP BY中会被视为相等的分组依据,符合样本存储的业务逻辑)。
  • 如果Slot为空代表无样本瓶,可将COUNT(*)改为COUNT(Slot),这样会自动忽略Slot为空的行,统计实际有样本的数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 07:17:34