Могу получить рекорд, который хочу, Ищу совет - PullRequest
1 голос
/ 26 июля 2011

Макет таблицы

id, inactive (Boolean), name
12500, f, foo
12345, f, foo
12344, f, foo
12343, f, foo
12342, t, foo
12..., t, foo (more records)
12200, f, bar
12005, f, bar
12004, f, bar
12003, f, bar
12002, t, bar
12..., t, bar (more records)
..............(more records with different names)

Результаты:

  • Нужно сгруппировать по имени
  • Нужно только неактивно = f
  • Нужен кулак неактивен= f, id
  • Нужно подсчитать, сколько записей, неактивно = f, для каждой группы

Так что из приведенных выше примеров я получу набор результатов:

id, inactive (Boolean), name, count
12343, f, foo, 157
12003, f, bar, 197
............. (any other names that fall into the above constraints)

Любая помощь в правильном направлении будет отличной

1 Ответ

1 голос
/ 26 июля 2011

1001 * попробовать *

select min (id), inactive, name, count(*) from tabke where inactive = 'f' group by inactive, name

EDIT:

select b.minid, a.inactive, a.name, a.cnt from
(select inactive, name, count(*) cnt from table where inactive = 'f' group by inactive, name) a,
(select inactive, name, min(id) minid from table where inactive = 'f' group by inactive, name) b
where a.inactive = b.inactive and a.name = b.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...