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

BigQuery SQL查询问题:按代表名字母排序并分组统计同类别实例

解决方案:正确分组排序并统计组合行数

首先明确你的核心需求:按es_representative_name字母顺序排列结果,对es_representative_name+category的唯一组合分组并统计行数,同时显示对应category。

你第四次尝试的查询其实已经满足需求,所谓“随新category重启排序”是误解——该查询的ORDER BY es_representative_name ASC, category ASC会先把所有相同es_representative_name的记录聚合在一起,整体按代表名称字母顺序排列,同一代表下再按category排序。你觉得看起来像是“重启排序”,只是因为同一代表下的category不同,但代表名称的排序是全局连续的。

如果需要严格确保代表名称的全局字母顺序,同时保留分组统计,这个查询完全没问题:

SELECT
  es_representative_name,
  category,
  COUNT(*) AS row_count
FROM
  `vox-007.ds_007_01.dt_007_01oB`
GROUP BY
  es_representative_name,
  category
ORDER BY
  es_representative_name ASC,
  category ASC;

额外优化:合并同一代表的多行展示(可选)

如果你的需求是让同一个es_representative_name只显示一次,把对应的category和计数整合在一起,可以用STRING_AGG函数将category和计数拼接:

SELECT
  es_representative_name,
  STRING_AGG(
    CONCAT(COALESCE(category, 'NULL'), ' (', COUNT(*), ')'),
    ', ' ORDER BY category ASC
  ) AS category_counts
FROM
  `vox-007.ds_007_01.dt_007_01oB`
GROUP BY
  es_representative_name
ORDER BY
  es_representative_name ASC;

这里用COALESCE处理category的NULL值,把NULL显示为明确的字符串,同时按category排序拼接结果,确保输出清晰。

关于之前查询的问题解析

  • 前三次查询没有同时按两个字段分组,无法统计每个组合的行数,不符合核心需求。
  • 第五次查询去掉了category排序,同一代表下的category会随机排列,仅保留代表名称的全局排序,内部顺序混乱,不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:05:10