У меня есть следующая таблица, и я хочу получить начальную строку с наименьшим идентификатором каждой группы uid.
Таблица выглядит следующим образом
_id uid type
1 a a
2 b bbb #satisfied
3 b ccc
4 b aaa #satisfied
5 a aaa #satisfied
6 b eee
Я могу уже получить исходную строку, используя следующий коррелированный подзапрос
SELECT *
FROM table
WHERE _id IN (
SELECT MIN(_id)
FROM table
WHERE type IN ('aaa','bbb')
GROUP BY uid
);
Однако я хочу, чтобы в 4-м столбце было показано количество строк, удовлетворяющих условию (type IN ('aaa','bbb')
), как cnt
, показанное ниже:
_id uid type cnt
5 a aaa 1
2 b bbb 2
Я думаю, что могу сосчитать это, используя несколько соединений, а затем присоединить результат к моему коду ... Но это ужасно ... Есть ли какой-нибудь элегантный способ добиться этого ...