「select n from group」タイプのクエリを使用できるはずですが、一意の ID が必要になります。
SELECT
t.ID,
t.Element,
t.Section
FROM Elements AS t
WHERE t.ID In (
SELECT Top 2 ID
FROM Elements q
WHERE q.Element=t.Element
ORDER BY Rnd([id])*1000)
私はこれを何度も経験しており、ランダムソート用のフィールドを追加してから、クエリを実行する前にフィールドを更新する必要があると思います。これにより、[Competency Elements] の RandomNumber というフィールドが更新されます
UPDATE [Competency Elements]
SET [Competency Elements].RandomNumber = Rnd([element id])*1000;
次に、パーセンテージを選択します。この特定のデータセットでは、33 を超える必要があると思います。
SELECT Val([comp section number]) AS [Sect No],
s.[section description],
e.[element number],
e.[element description],
Rnd(e.[element id]) AS Expr1,
s.[section id],
e.[element id],
x.example,
s.[competency id],
c.[comp number],
c.[competency category]
FROM competencies AS c
INNER JOIN (([competency sections] AS s
INNER JOIN [competency elements] AS e
ON s.[section id] = e.[section id])
INNER JOIN examples AS x
ON e.[element id] = x.[element id])
ON c.[competency id] = s.[competency id]
WHERE (( ( e.[element id] ) IN (SELECT TOP 35 PERCENT [element id]
FROM [competency elements] q
WHERE q.[section id] = e.[section id]
ORDER BY randomnumber) ))
ORDER BY Val([comp section number]);
グループからランダムに選択することに関しては、いくつかの問題があります。