Вот мой SQL:
SELECT t.uid, array_agg(t.place) FROM tour_tracking t WHERE (orderon::time BETWEEN '18:00:00' AND '20:00:00') GROUP BY t.uid;
Исходный результат:
|---------------|----------------------|
| uid | place |
|---------------|----------------------|
| a01 | {hk, hk, jp} |
|---------------|----------------------|
| a02 | {jp, jp, jp, jp, uk} |
|---------------|----------------------|
Теперь я хочу рассчитывать на каждое место DISTINCT для каждого группового идентификатора пользователя.Обнадеживающий результат:
|---------------|--------------------------------------|
| uid | place |
|---------------|--------------------------------------|
| a01 | something like this: {hk,2, jp,1} |
|---------------|--------------------------------------|
| a02 | {jp:4, uk:1} |
|---------------|--------------------------------------|
Я пытаюсь объединить некоторый count()
sql запрос, но не сработает .., как сделать правильный запрос?
Версия PostgreSQL: 10.3