SQL中的计数结果

SQL中的计数结果,sql,oracle10g,Sql,Oracle10g,在SQL中使用COUNT时遇到问题…下面的查询返回两行,但随后返回raps列作为137。因此,我认为它是计算数据集中操作id列的总数,而不是计算结果 有没有办法让它只计算结果中的列,这样raps在每个列中返回1?然后我将使用PHP将它们添加到一起 //质疑 SELECT DISTINCT hrap_id, operation_id, COUNT (operation_id) AS raps,

在SQL中使用COUNT时遇到问题…下面的查询返回两行,但随后返回raps列作为137。因此,我认为它是计算数据集中操作id列的总数,而不是计算结果

有没有办法让它只计算结果中的列,这样raps在每个列中返回1?然后我将使用PHP将它们添加到一起

//质疑

  SELECT DISTINCT hrap_id,
                    operation_id,
                    COUNT (operation_id) AS raps,
                    operation_type
      FROM view_rappels
      WHERE year = '2013' AND crew_id = '4'
  GROUP BY hrap_id, operation_type, operation_id
//结果

10.00   702020000.00    137.00  operational
1.00    702020000.00    137.00  operational

您需要像这样将DISTINCT放在count函数中

COUNT(DISTINCT operation_id) AS raps 

您是否尝试过从view_rappels中选择COUNT(DISTINCT operation_id)作为RAP?如果您知道它将始终为1-这将是什么,因为
operation_id
是group by的一部分(除非您有任何空值,在这种情况下,您将得到零)-为什么要费心计算?谢谢,我不知道这是可能的。