У меня есть таблица:
Таблица - пользователь
user_id name country role function
1 abc1 US Developer IT
2 abc3 US Developer IT
3 abc4 US Developer IT
4 abc6 US Developer IT
5 abc8 US Developer IT
6 abc9 US Developer IT
7 abc5 Canada Developer IT
8 abc2 Canada Accountant Finance
9 abc7 US Accountant Finance
10 abc10 Canada Developer IT
11 abc11 Canada Accountant Finance
12 abc12 US Accountant Finance
Как я могу заказать таблицу выше, чтобы получить запись уникальной комбинации country
, role
и function
.
Таким образом, результат будет выглядеть следующим образом:
user_id name country role function
1 abc1 US Developer IT
7 abc5 Canada Developer IT
9 abc7 US Accountant Finance
8 abc2 Canada Accountant Finance
2 abc3 US Developer IT
10 abc10 Canada Developer IT
12 abc12 US Accountant Finance
11 abc11 Canada Accountant Finance
3 abc4 US Developer IT
4 abc6 US Developer IT
5 abc8 US Developer IT
6 abc9 US Developer IT
Приведенные выше результаты с использованием следующей логики c:
- Найти отличительные комбинация
country
, role
и function
- Возьмите первую запись ПЕРВОЙ отчетливой комбинации. Например Строка 1 имеет страну = США, роль = Разработчик, функция = IT
- Возьмите первую запись Второй отдельной комбинации. Например Строка 2 имеет страну = Канада, роль = Разработчик, функция = IT
- Возьмите первую запись ТРЕТЬЕЙ отличной комбинации. Например Строка 3 имеет страну = США, роль = Бухгалтер, функция = Финансы
- Возьмите первую запись четвёртой четкой комбинации. Например Строка 4 имеет страну = Канада, роль = Бухгалтер, функция = Финансы
Теперь уникальных уникальных комбинаций нет, поэтому следующая запись будет из ПЕРВОЙ отчетливой комбинации.
Есть ли способ достичь этого в PostgresSQL?