我有一张这样的桌子
ID ATTRIBUTE
1 A
1 A
1 B
1 C
2 B
2 C
2 C
3 A
3 B
3 C
我想为每个 ID选择一个随机属性。因此,结果可能如下所示(尽管这只是众多选项之一
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
但是,我不知道这是否是一个好的解决方案,因为我需要引入行号,这有点麻烦。
你有更好的吗?