我有一张桌子。
如何获取特定行中值为“M”的列值的计数?
例如:如果我给出条件,其中shape_name ='Rectangle',它将返回值为''M'的列的计数。结果:计数为2
如果真L-Left =>结果:计数为4 如何得到答案。?请帮助我修复它。
答案 0 :(得分:4)
CASE WHEN的解决方案是这样的:
SELECT shape_name,
CASE WHEN a = 'm' THEN 1 ELSE 0 END +
CASE WHEN b = 'm' THEN 1 ELSE 0 END +
CASE WHEN c = 'm' THEN 1 ELSE 0 END as mcount
FROM t1
只需将SQL调整为表结构 - 您需要为每列找到更多CASE WHEN
语句
答案 1 :(得分:0)
很老的解决方案 - 获取所有列,遍历所有列,并计算M
的出现次数。
答案 2 :(得分:0)
select SHAPE_NAME ,
DECODE(COLUMN_NAME1,'M',1,0)+
DECODE(COLUMN_NAME2,'M',1,0)+
DECODE(COLUMN_NAME3,'M',1,0)+
DECODE(COLUMN_NAME4,'M',1,0) your_count
from YOUR_TABLE where shape_name='Rectangle' ;