Oracle11g 如何计算所有列中值的出现次数

Oracle11g 如何计算所有列中值的出现次数,oracle11g,Oracle11g,我能够找出单个列中值的出现次数。 利用 select column_name,count(count_name) from table_name order by column_name 但是我需要查询多个列值的出现次数。直接在列上使用count函数时,只返回行的计数。多列的计数之和正好是行数乘以列数。我们可以做的一件事是返回所有列上条件的解码总和,例如: select mytable.*, DECODE(mytable.column1,"target value",1,0) + DECOD

我能够找出单个列中值的出现次数。 利用

select column_name,count(count_name) 
from table_name order by column_name

但是我需要查询多个列值的出现次数。

直接在列上使用count函数时,只返回行的计数。多列的计数之和正好是行数乘以列数。我们可以做的一件事是返回所有列上条件的解码总和,例如:

select mytable.*,
DECODE(mytable.column1,"target value",1,0) + DECODE(mytable.column2,"target
value",1,0) as hits from mytable

基本上,对于每一行,它将检查满足条件的列的数量。在这种情况下,该值('hits')可以是0、1或2,因为我们正在检查两列上的条件。

这些列之间的关系是什么?此外,您的查询缺少“按列名分组”来工作。