首页 > 解决方案 > 我想在每个字母中打印单词并计算字母多少次

问题描述

sreenath 我想要这样的输出

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

标签: mysqlsqlhiveql

解决方案


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

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

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

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

注意:这假设您的数据存储在表“mytable”的“值”列中

    -

推荐阅读