Auf Thema antworten

Hrm, ich bin mir nicht sicher, ob ich Dich richtig verstanden habe...


Ich erzeuge eine Tabelle:


[code]

test=# create table xorem(id serial primary key, kategorie text, frage text);

CREATE TABLE

test=*# insert into xorem (kategorie , frage) select 'Kategorie ' || k::text, 'Frage ' || random()::text from generate_series(1,12)k cross join generate_series(1,1000) x;

INSERT 0 12000

[/code]


Aus dieser willst Du jetzt je Kategorie eine zufälllige Frage?


[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);

  id   |  kategorie   |           frage          

-------+--------------+---------------------------

   103 | Kategorie 1  | Frage 0.6848331529214562

  1750 | Kategorie 2  | Frage 0.6909608059359478

  2155 | Kategorie 3  | Frage 0.18357568343245134

  3261 | Kategorie 4  | Frage 0.8703990607338667

  4624 | Kategorie 5  | Frage 0.08257242582308422

  5307 | Kategorie 6  | Frage 0.5904962323190546

  6681 | Kategorie 7  | Frage 0.08823807862579969

  7830 | Kategorie 8  | Frage 0.5842377289998701

  8727 | Kategorie 9  | Frage 0.04882467962382009

  9822 | Kategorie 10 | Frage 0.03511003825811443

 10101 | Kategorie 11 | Frage 0.4164879394115033

 11738 | Kategorie 12 | Frage 0.47849772675170144

(12 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);

  id   |  kategorie   |           frage          

-------+--------------+----------------------------

   152 | Kategorie 1  | Frage 0.7035299134539024

  1291 | Kategorie 2  | Frage 0.9563267853614263

  2347 | Kategorie 3  | Frage 0.9631845908749312

  3029 | Kategorie 4  | Frage 0.6403800045043582

  4819 | Kategorie 5  | Frage 0.41677167204903753

  5318 | Kategorie 6  | Frage 0.1478997584047086

  6490 | Kategorie 7  | Frage 0.4741054519339549

  7662 | Kategorie 8  | Frage 0.054544677618441284

  8788 | Kategorie 9  | Frage 0.26123879787324356

  9643 | Kategorie 10 | Frage 0.8050594060279366

 10979 | Kategorie 11 | Frage 0.5324426753242051

 11286 | Kategorie 12 | Frage 0.6229950722375186

(12 rows)


test=*#

[/code]


Paßt das? Ist aber kein MySQL...


Zurück
Oben