Nun denn, dann erweitern wir das mal:
[code]
test=# with fragen as (select distinct on (kategorie) id from xorem order by kategorie, random()) select * from xorem where id in (select id from fragen) order by random() limit 3;
id | kategorie | frage
------+--------------+--------------------------
2867 | Kategorie 3 | Frage 0.6476719899137038
5510 | Kategorie 6 | Frage 0.7300347285717983
9567 | Kategorie 10 | Frage 0.3252545828389515
(3 rows)
test=*# with fragen as (select distinct on (kategorie) id from xorem order by kategorie, random()) select * from xorem where id in (select id from fragen) order by random() limit 3;
id | kategorie | frage
-------+--------------+---------------------------
11383 | Kategorie 12 | Frage 0.3081237967255248
4983 | Kategorie 5 | Frage 0.08823085417425602
3513 | Kategorie 4 | Frage 0.9011462937044641
(3 rows)
test=*# with fragen as (select distinct on (kategorie) id from xorem order by kategorie, random()) select * from xorem where id in (select id from fragen) order by random() limit 3;
id | kategorie | frage
------+-------------+---------------------------
3593 | Kategorie 4 | Frage 0.342745250782734
8836 | Kategorie 9 | Frage 0.13115786734378432
2011 | Kategorie 3 | Frage 0.6969774718880615
(3 rows)
test=*#
[/code]
Nun hast von den N Kategorien 3 zufällige.