postgresql - 通过 SQL 计算序列中的字符

标签 postgresql count

我有一个带有序列表的数据库。此表中的每个(氨基酸)序列包含 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/

相关文章:

postgresql:对没有时区的时间戳的时区敏感查询

javascript - JS : Counting Elements in Array -> Returning Array of Arrays

postgresql - 是否可以编写一个处理多对多连接的 postgres 函数?

postgresql - 错误 "password authentication failed for user "bucardo"at/usr/local/bin/bucardo line 308"while adding postgresql database in bucardo

java - java中计算hashmap中每个值对应的条目数的逻辑

java - 如何递归确定二进制形式中任意数字中 1 的数量

javascript - 如何统计具有元素值的对象?

android - 总用户/Activity 设备安装计数未在 Android 开发人员控制台中更新

MySQL 和 PostgreSQL 引用字段名称之间的 PHP PDO 兼容性

java - MySQL x Java - 引发异常