Seleccionar fila aleatoria para cada grupo
Tengo una mesa como esta
ID ATTRIBUTE
1 A
1 A
1 B
1 C
2 B
2 C
2 C
3 A
3 B
3 C
Me gustaria seleccionarsolo uno Atributo aleatorio para cada ID. Por lo tanto, el resultado podría verse así (aunque esta es solo una de las muchas opciones).
ATTRIBUTE
B
C
C
Este es mi intento en este problema
SELECT
"ATTRIBUTE"
FROM
(
SELECT
"ID",
"ATTRIBUTE",
row_number() OVER (PARTITION BY "ID" ORDER BY random()) rownum
FROM
table
) shuffled
WHERE
rownum = 1
sin embargo, no sé si esta es una buena solución, ya que necesito introducir números de fila, lo cual es un poco engorroso.
¿Tienes una mejor?