adb支持ignore nulls, 我想得到每个cust_id分组下, 更大的create_ti

adb支持ignore nulls, 我想得到每个cust_id分组下, 更大的create_time的, 非空id_card和sex值, 怎么办image.png 上例子中, 我想得到的是cust_id=1的最新的数据, 即 id_card=234, sex='F'

展开
收起
真的很搞笑 2023-04-27 08:20:19 199 分享 版权
1 条回答
写回答
取消 提交回答
  • 可以使用以下 SQL 语句来实现:

    SELECT  cust_id, MAX(create_time), 
            MAX(id_card) IGNORE NULLS, MAX(sex) IGNORE NULLS
    FROM    your_table
    WHERE   id_card IS NOT NULL AND sex IS NOT NULL
    GROUP BY cust_id
    HAVING  MAX(create_time) IS NOT NULL
    

    上述代码将忽略所有非最新的 create_time,并且忽略掉所有值为空的 id_cardsex,以保证结果准确。

    如果你只希望仅查询 cust_id 为 1 的数据,则你可以添加以下条件:

    SELECT  cust_id, MAX(create_time), 
            MAX(id_card) IGNORE NULLS, MAX(sex) IGNORE NULLS
    FROM    your_table
    WHERE   id_card IS NOT NULL AND sex IS NOT NULL AND cust_id = 1
    GROUP BY cust_id
    HAVING  MAX(create_time) IS NOT NULL
    

    这样结果集中仅包含 cust_id 为 1 的数据。

    2023-04-27 08:25:55
    赞同 展开评论

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

收录在圈子:
+ 订阅
让用户数据永远在线,让数据无缝的自由流动
还有其他疑问?
咨询AI助理