获得COUNT()的SUM()

时间:2011-06-17 12:33:21

标签: mysql sql

在mysql中有没有办法实现

SELECT COUNT( SUM(field2) ) FROM TABLE WHERE field1='value' GROUP BY field2

使用计算字段2的总和返回一行。

Field 1&&字段2都不是唯一的。

如果需要更多信息,请告诉我。

修改: 我没想清楚。 我需要COUNT的COUNT。

所以来自字段2的所有计数值。 这可以通过获取行数来实现,但我选择了这个:

SELECT COUNT( first_count ) total_count FROM 
( SELECT COUNT( field2 ) as first_count FROM TABLE
  WHERE field1='value' GROUP BY field2 )t1

或者是否有更快的查询?

干杯!

2 个答案:

答案 0 :(得分:5)

我认为你的意思是:

SELECT field2
     , field2 * COUNT(*)
FROM TABLE
WHERE field1 = 'value'
GROUP BY field2

此外:

没有GROUPED BY。有:GROUP BY


在您更新和澄清之后,我认为您的查询显示的内容与:

相同
SELECT COUNT( DISTINCT field2 ) AS total_count
FROM TABLE
WHERE field1 = 'value'

答案 1 :(得分:5)

您的更新

SELECT COUNT( first_count ) total_count FROM 
( 
  SELECT COUNT( field2 ) as first_count FROM TABLE
  WHERE field1='value' GROUP BY field2 )t1
)

是每个field2的COUNT计数,与唯一field2的计数相同;

SELECT COUNT(DISTINCT field2) FROM TABLE WHERE field1='value'