计算表中每个不同元素的出现次数

时间:2011-12-08 16:07:35

标签: sql firebird

我正在ASP.NET / C#中编写一个日志查看器应用程序。有一个报告窗口,可以检查有关整个数据库的一些信息。我想在屏幕上显示的一种信息是每个生成器(我的域中的实体,而不是Firebirds序列)出现在表中的次数。我如何使用COUNT做到这一点?

我必须:

  1. 为每个不同的发电机收集钥匙
  2. 使用count
  3. 为每个生成器密钥运行一个查询
  4. 以某种方式显示
  5. 有没有办法,我可以做到这一点,而无需对数据库进行两次查询?数据库大小可能很大,并且必须查询它“X”次,其中“X”是生成器的数量,这很糟糕。

    我正在使用Firebird数据库,有没有办法从任何元数据架构中获取此信息,或者没有这样的东西可用?

    基本上,我想要的是计算表中每个生成器的每个出现次数。结果如下:发电机A:10次,发电机B:7次,发电机C:0次等等。

3 个答案:

答案 0 :(得分:2)

如果我正确理解你的问题,使用GROUP BY条款就是一个简单的问题,例如:

select
  key,
  count(*)
from generators
group by key;

答案 1 :(得分:1)

下面的查询应该足够了(取决于您的确切结构和要求)

SELECT KEY, COUNT(*)
FROM YOUR_TABLE
GROUP BY KEY

答案 2 :(得分:0)

我使用这个简单的查询解决了我的问题:

SELECT GENERATOR_,count(*) 
FROM EVENTSGENERAL GROUP BY GENERATOR_;

感谢那些帮助过我的人。 我花了8个小时才回来发布答案,因为StackOverflow限制根据我的声誉回答我自己的问题。