Я работаю над огромной БД в PostgreSQL. (Извините, если это неправильно отредактировано, я пробовал это часами и все еще работаю над этим)Группа по группам значений
Это часть структуры таблицы, используемой для моего запроса: (таблица user_activities) с некоторыми образцами данных.
+---------------------+---------------------+---------------------+
| user_id | activity | operation |
+---------------------+---------------------+---------------------+
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 4 | 1 | 4 |
| 5 | 1 | 4 |
| 5 | 1 | 5 |
| 6 | 3 | 1 |
| 6 | 3 | 1 |
| 6 | 3 | 2 |
| 7 | 3 | 3 |
| 8 | 3 | 4 |
| 8 | 3 | 5 |
+---------------------+---------------------+---------------------+
И это мой желаемый результат:
+---------------------+---------------------+---------------------+
| count(user_id) | activity | operation |
+---------------------+---------------------+---------------------+
| 4 | 1 | 1,2 |
| 6 | 1 | 3,4,5 |
| 6 | 3 | 1,2,3,4,5 |
+---------------------+---------------------+---------------------+
Мне нужно подсчитать user_id для каждого вида деятельности и группы значений операций. Поэтому мне нужно группировать по активности, когда активность равна 1 или 3. (уже сделано это WHERE activity IN (1,3)
). Но мне также нужно сгруппировать по операции. Проблема в том, что каждая группа операций будет иметь более 1 значения. Операция может быть 1,2,3,4 и 5. И я хочу объединить группы 1,2, а также группы 3,4,5. Но это еще не все ...
Если я группирую операцию, у меня будет 5 групп для каждого вида деятельности. Мне нужно иметь 2 группы для активности 1 (группы уже указаны) и только одна группа со всеми значениями деятельности, если активность равна 3.
Возможно ли это?
Редактировать: Теперь я не смогу проверить ответы, надеюсь, что у вас будет возможность завтра. Поэтому я дам свои голоса и ответы на эти ответы, спасибо за помощь.
Я думаю, вы должны отредактировать свой вопрос и предоставить образцы данных и желаемые результаты (чтобы уточнить, что вы ищете) и запрос, который у вас есть (чтобы помочь кому-либо еще писать запрос). –
@GordonLinoff ok, дай мне минуту, редактирование – AleOtero93
Можете ли вы использовать расширение tablefunc? – dtelaroli