Angenommen, ich habe eine Tabelle foo
aus dem ich aus jeder Kategorie N Zeilen auswählen mag, dassSQL-Select mit dynamischen Zählungen
create table foo(name text, category text);
name | category
------+----------
aaa | cat1
bbb | cat1
ccc | cat2
ddd | cat2
eee | cat2
Jetzt würde ich gerne von foo gegeben eine Reihe von Kategorien wählen
category | count
----------+-------
cat2 | 2
cat1 | 1
Das Ergebnis sollte 3 Zeilen sein
name
------
ccc
ddd
aaa
-- wrong, not taking counts into account
with t as (select * from (values ('cat1', 1), ('cat2', 2)) as
t(category, count)) select name from foo, t where foo.category = t.category;
name
------
aaa
bbb
ccc
ddd
eee
(Bande könnte zufällig oder durch eine beliebige Reihenfolge gelöst werden) Ich könnte dies mit mehreren Abfragen tun, aber ich denke, ich vermisse etwas sehr offensichtlich und die Auswahl kann mit einer einzigen Abfrage durchgeführt werden.