Подсчет вхождения каждого отдельного элемента в таблице - PullRequest
0 голосов
/ 08 декабря 2011

Я пишу приложение для просмотра журналов в ASP.NET / C #.Есть окно отчета, где можно будет проверить некоторую информацию о всей базе данных.Один вид информации, которую я хочу отобразить на экране, - это количество раз, когда каждый генератор (сущность в моем домене, а не последовательность Firebirds) появляется в таблице.Как мне это сделать, используя COUNT?

Нужно ли:

  1. Собрать ключ для каждого генератора
  2. Выполнить один запрос для каждого ключа генератора с помощью счетчика
  3. Покажите это как-нибудь

Есть ли способ, которым я могу сделать это без необходимости делать два запроса к базе данных?Размер базы данных может быть ОГРОМНЫМ, и при необходимости запросить его «X», где «X» - это число генераторов, будет просто отстой.

Я использую базу данных Firebird, есть ли способ получить эту информацию?из какой-либо схемы метаданных или нет такой вещи?

По сути, я хочу подсчитать каждое вхождение каждого генератора в таблице.Результат будет примерно таким: ГЕНЕРАТОР А: 10 раз, ГЕНЕРАТОР Б: 7 раз, Генератор С: 0 раз и т. Д.

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

Если я правильно понимаю ваш вопрос, то просто воспользоваться предложением GROUP BY, например:

select
  key,
  count(*)
from generators
group by key;
1 голос
/ 08 декабря 2011

Что-то вроде запроса ниже должно быть достаточно (в зависимости от вашей точной структуры и требований)

SELECT KEY, COUNT(*)
FROM YOUR_TABLE
GROUP BY KEY
0 голосов
/ 09 декабря 2011

Я решил свою проблему с помощью этого простого запроса:

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

Спасибо за тех, кто помог мне.Мне понадобилось 8 часов, чтобы вернуться и опубликовать ответ из-за ограничения StackOverflow, чтобы отвечать на мои собственные вопросы, основанные на моей репутации.

...