我有一个带序列表的数据库.该表中的每个(氨基酸)序列包含20个不同的字符(A,V,……).例如“MQSHAMQCASQALDLYD ……”.
我想计算每个字符的外观数量,这样我得到的东西就像“2xM,3xQ,……”.
此外,我想在我的数据库中的所有序列上执行此操作,因此我得到每个字符的整体外观. (“248xM,71x W,……”).
我怎么能在Postgresql中做到这一点?目前,我正在使用Ruby,但我有25,000个序列,每个序列长度约为400个字符.这需要一段时间,我希望sql会更快.
这是如何在字符串中查找所有A:
select length(regexp_replace('AAADDD','[^A]','','g'));
这是如何在表中查找所有A:
select sum(length(regexp_replace(field,'g'))) from table;