adb支持ignore nulls, 我想得到每个cust_id分组下, 更大的create_time的, 非空id_card和sex值, 怎么办 上例子中, 我想得到的是cust_id=1的最新的数据, 即 id_card=234, sex='F'
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可以使用以下 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_card
和 sex
,以保证结果准确。
如果你只希望仅查询 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 的数据。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。