我有一個這樣的資料集
A B Group Index
1 3 G1 25
1 3 G1 23
1 3 G1 99
4 5 G2 6
4 5 G2 8
4 5 G2 10
4 5 G2 2
4 5 G2 4
理想的輸出是為每個組選擇前 x 行,并按降序排列Index
Group Index
G1 23
G2 6
G2 8
G2 2
G2 4
- 對于 中的每個不同值,所有行的和
Group值都相同。AB B表示資料集中有多少行。例如,我們有 3 行用于 G1。A指示輸出需要多少行。例如,在輸出中只有IndexG1 存在最低值的一行,G2 存在 4 行
任何人都可以闡明如何處理這個問題嗎?
uj5u.com熱心網友回復:
MsAccess 可以有一個子查詢作為它的選擇運算式,它可以用來產生一個有限的行號:
SELECT *
FROM (
SELECT TblA.*,
(SELECT count(*) from Sheet1 TblB
where tblB.GROUP=tblA.GROUP and tblB.Index<=tblA.Index) as ROWNO
FROM Sheet1 TblA) Step1
where Step1.ROWNO<=Step1.A
最大的警告是,如果同一組的兩行可以具有相同的索引值。
uj5u.com熱心網友回復:
單個子查詢將執行以下操作:
SELECT
YourTable.Group,
YourTable.Index
FROM
YourTable
WHERE
(Select Count(*) From YourTable As T
Where T.Group = YourTable.Group And T.Index <= YourTable.Index) <= [A]
ORDER BY
YourTable.Group,
YourTable.Index DESC;
這假設Index每個組的值都是唯一的。

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/410447.html
標籤:
上一篇:根據id從表中獲取用戶
