我想在每个字母中打印单词并计算该字母多少次

时间:2019-01-19 16:20:33

标签: mysql sql hiveql

呼吸 我想要这样的输出

select * from string_split(separator ' ');
s - 1
r - 1
e - 2
n - 1
t - 1

1 个答案:

答案 0 :(得分:0)

我了解您正在尝试生成一个结果集,以显示每个字符在一个单词中出现的次数。

要实现此目的,最好设置一个表格,列出要跟踪其出现的所有字符。

CREATE TABLE alphabet ( 
    c varchar(1) NOT NUL PRIMARY KEY
);
INSERT INTO alphabet VALUES('a');
INSERT INTO alphabet VALUES('b');
...
INSERT INTO alphabet VALUES('z');

现在,以下查询可以解决问题:

SELECT
    c.c,
    LENGTH(t.value)
        - LENGTH( REPLACE ( LCASE(t.value), c.c, '') ) occurrences 
FROM 
    mytable t
    INNER JOIN alphabet c
        ON INSTR(t.value, c.c) > 0

您可以随意在字母表中添加任何其他字符(可以是数字,也可以是任何特殊字符)。根据当前查询,您在输入字母表时应该使用小写字母。

NB:这假设您的数据存储在表“ mytable”的“ value”列中

    --