我有一个用作免费 txt 字段的变量,有数千行长。
虽然它应该只包含帐号,但它也包含电话号码、文本或 NULL。
我只需要提取包含帐号(8 位数字字段)的列。 我如何在 SQL impala 中存档它,尤其是因为我们不仅有数字,还有文本。 我还需要知道帐号与其他帐号的百分比,以估计修复其他字段所需的时间。 如何才能做到这一点? 它看起来像这样:
accounts
---------
12345678
23456789
test only
34567890
23443256
23443257
021735547
23443258
23443259
23443260
call back
23443261
53443262
23443263
23443264
23443265
cancel
53443262
53443263
63443264
53443265
73443266
53443267
最佳答案
很有趣。我会使用 regexp_like()
:
select sum(case when regexp_like(col, '^[0-9]{8}$') then 1 else 0 end) as cnt,
avg(case when regexp_like(col, '^[0-9]{8}$') then 1.0 else 0 end) as ratio
from t;
关于sql - impala sql 只选择特定长度的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50091772/