1

我在下面有一张桌子。

在此处输入图像描述

如何获取特定行中值为“M”的列值的计数?

例如:如果我给出条件,其中 shape_name='Rectangle' 它将返回值为 = 'M' 的列的计数。结果:计数为 2

If True L-Left=> Result: count is 4 如何得到答案。?请帮我修复它。

4

3 回答 3

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

SQLFiddle

只需将 SQL 调整为您的表结构 - 您将需要CASE WHEN为每列查找更多语句

于 2013-07-03T05:38:27.023 回答
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' ;
于 2013-07-03T08:19:53.037 回答
0

非常旧的解决方案 - 获取所有列,遍历所有列,并计算M.

于 2013-07-03T05:38:12.467 回答