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

Presto SQL中如何按天分组计算布尔列的true值占比

解决方案

你可以使用条件聚合的方式实现需求,无需按column1分组,直接在按日期分组后统计对应布尔值的记录数即可,完整Presto SQL如下:

SELECT
    date_format(from_unixtime(time), '%Y-%m-%d') AS ds,
    ROUND(COUNT_IF(column1 = TRUE) * 100.0 / COUNT(*), 1) AS true_ratio
FROM tbl
GROUP BY date_format(from_unixtime(time), '%Y-%m-%d')
ORDER BY ds DESC

逻辑说明

  • COUNT_IF(column1 = TRUE):统计每日column1为true的总记录数
  • COUNT(*):统计当日所有记录总数,自动覆盖true、false两类数据
  • 乘以100.0是为了规避Presto整数除法默认取整的问题,ROUND(xxx,1)用于保留1位小数,和要求的输出格式匹配
  • 分组仅保留日期维度,最终每日只会输出1条记录

如果你的表中可能存在column1为NULL的场景,且需要排除NULL值参与统计,可将总计数逻辑调整为COUNT_IF(column1 IS NOT NULL)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:06:03