我有一个带有序列表的数据库。此表中的每个(氨基酸)序列包含 20 个不同的字符(A、V、...)。例如“MQSHAMQCASQALDLYD...”。
我想计算每个字符出现的次数,以便得到类似“2xM、3xQ、...”的结果。
此外,我想对我的数据库中的所有序列执行此操作,以便获得每个字符的整体外观。 (“248xM,71xW,...”)。
我如何在 PostgreSQL 中执行此操作?目前,我正在用 Ruby 做这件事,但我有 25,000 个序列,每个序列的长度约为 400 个字符。这需要一段时间,我希望使用 SQL 会更快。
最佳答案
这是如何在字符串中找到所有 A 的方法:
select length(regexp_replace('AAADDD', '[^A]', '', 'g'));
这是查找表中所有 A 的方法:
select sum(length(regexp_replace(field, '[^A]', '', 'g'))) from table;
关于postgresql - 通过 SQL 计算序列中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6292511/