У меня есть набор данных, который имеет список идентификаторов и с этими идентификаторами - это список категорий (поэтому каждый идентификатор может иметь много категорий). Я хочу найти список категорий и посмотреть, сколько разных идентификаторов находится внутри этой категории (число), но как только id подсчитывается в одной категории, он не будет учитываться в другом.Количество в последовательном порядке
Пример:
ID Category 1 Gas Station 1 Convenience Store 1 Barber 2 Day Care 2 Gas station 3 Convenience Store 3 Golf Range
Так что, если я делаю поиск подсчетов на АЗС и мини-маркете (в таком порядке) Автозаправочная станция получит кол-2 (для идентификатора 1 & 2), а затем Магазин удобств получит счет 1 (id 3).
В настоящее время мой запрос выглядит следующим образом:
select category,distinct(id) from TABLE
where id in ('Gas Station','Convenience Store')
group by category
и это даст мне
Gas Station - 2 Convenience Store - 2
И это не то, что я хочу. Желаемый результат:
Gas Station - 2 Convenience Store - 1
Во-первых, я предполагаю, что у вас есть ошибки SQL и хотел сказать "где категории в ..." вместо «где id in ...». Ваша личность группируется по категориям, поэтому вы получаете разные значения WITHIN, а не по всему набору результатов. – gwc
* «как только идентификатор подсчитывается в одной категории, он не будет считаться в другом» * - каково правило для определения того, какая категория будет первой - обратный алфавитный порядок? Другими словами, почему нет магазина для удобства, считающегося 2 (идентификаторы 1 и 3), а заправочная станция подсчитана как 1 (идентификатор 2, идентификатор 1 не считается, поскольку он уже включен в магазин для покупок)? –