首页 > 解决方案 > 计算跨多列 sql 的字符串出现次数

问题描述

我如何计算总数。表中出现的 $ 符号?在这种情况下,简单的选择查询将不起作用。我应该如何编辑我的选择查询以计算表中多个列的字符串出现次数。

c1 | c2 | c3 | c4 | c5|
$ | | | $ | |  
   | $ | $ | $ | |   
   | | | | |
$ | | | | |  


($ 符号随机出现在任何列的表中)我试图通过正则表达式获取计数,但它总是返回 no。存在 $ 的行数,而不是 $ 的数量。

标签: mysqlpostgresql

解决方案


您可以使用case内部计数来计算$列中的出现次数

select 
  count(case when c1 = '$' then 1 else null end) 
+ count(case when c2 = '$' then 1 else null end)
+ count(case when c3 = '$' then 1 else null end) 
+ count(case when c4 = '$' then 1 else null end) 
+ count(case when c5 = '$' then 1 else null end) cnt
from your_table

演示 Mysql

演示 Postgre


推荐阅读