Выберите случайную строку для каждой группы
У меня есть такой стол
ID ATTRIBUTE
1 A
1 A
1 B
1 C
2 B
2 C
2 C
3 A
3 B
3 C
хотел бы выбратьтолько один случайный атрибут для каждого идентификатора. Поэтому результат может выглядеть следующим образом (хотя это только один из многих вариантов
ATTRIBUTE
B
C
C
Это моя попытка решить эту проблему
SELECT
"ATTRIBUTE"
FROM
(
SELECT
"ID",
"ATTRIBUTE",
row_number() OVER (PARTITION BY "ID" ORDER BY random()) rownum
FROM
table
) shuffled
WHERE
rownum = 1
однако я неЯ не знаю, является ли это хорошим решением, так как мне нужно ввести номера строк, что немного громоздко.
У тебя есть лучший?