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

SQL需求:特定日期仅Android来源时第5列返回true否则null

解决特定日期来源仅为Android时返回True的SQL实现

需求说明

针对表格中的日期维度,当某一日期下所有记录的来源字段仅为Android时,新增的第5列返回true;只要该日期存在其他来源,第5列返回null。

可行SQL写法

写法一:统计日期内不同来源数量

SELECT 
    *,
    CASE 
        WHEN COUNT(DISTINCT 来源) OVER (PARTITION BY 日期) = 1 
             AND MAX(来源) OVER (PARTITION BY 日期) = 'Android'
        THEN true 
        ELSE null 
    END AS 第五列
FROM 你的表名;

逻辑:按日期分组后,先判断该日期下的来源种类是否只有1种,再确认这个唯一来源是Android,满足则返回true。

写法二:检查日期内是否存在非Android来源

SELECT 
    *,
    CASE 
        WHEN SUM(CASE WHEN 来源 != 'Android' THEN 1 ELSE 0 END) OVER (PARTITION BY 日期) = 0
        THEN true 
        ELSE null 
    END AS 第五列
FROM 你的表名;

逻辑:按日期分组后,统计该日期下非Android的记录总数,总数为0说明全是Android,返回true。

关于你用partition未达预期的可能原因

大概率是只针对单条记录做了判断,而非对整个日期分组的所有来源做校验。比如如果仅判断当前行的来源是Android就返回true,会导致同一日期里有其他来源时,Android的行也会返回true,不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:15:33