簡體   English   中英

訪問 Select 前 10 條記錄,按每組 COUNT 排列

[英]ACCESS Select Top 10 Records by COUNT per Group By

我在 Office 365 的 MS Access 中遇到此查詢時遇到問題。對於每個分組,我試圖 select 按 ItemCount 排列前 10 行。 因此,每個 GroupID 將顯示前 10 個 ItemName 計數。 我知道下面是錯誤的,因為它只會查詢十條記錄。 我不確定 go 從這里到哪里。 我嘗試了一個對項目進行排序的子查詢,然后嘗試提取前 10 個項目,但顯然我做錯了。

Select Top 10 GroupID, ItemName, COUNT(ItemName) as ItemCount
FROM Table
GROUP BY GROUPID, ItemName
Order By COUNT(ItemName) DESC;

任何建議表示贊賞

謝謝!

您能否在下面嘗試一下,在子查詢中使用 TOP 關鍵字。

Select GroupID, ItemName, COUNT(ItemName) as ItemCount
FROM Table t1
WHERE ItemName in (
                    Select TOP 10 t2.ItemName
                    from Table t2
                    where t2.GroupID = t1.GroupID
                    order by count(t2.ItemName) desc, t2.ItemName
                  )
GROUP BY GROUPID, ItemName
Order By GROUPID, COUNT(ItemName) DESC;

您可以使用相關子查詢。 這是一種方法:

select GroupID, ItemName, count(*) as ItemCount
from Table as t
group by groupid, ItemName
having count(*) in (select top 10 count(*)
                    from table as t2
                    where t2.groupid = t.groupid
                    group by t2.groupid, t2.itemname
                    order by count(*) desc
                   )
order by count(*) desc;

注意:如果存在平局,則給定組的行數可能會超過 10 行。

您能否嘗試從 select 前 10 位創建一個 CTE(公用表表達式),並在第二個 select 中包含順序。 它應該工作,如果不是,請告訴我。

with cte as (
Select GroupID, ItemName, COUNT(ItemName) as ItemCount
FROM Table
GROUP BY GROUPID, ItemName
)

Select top(10)* 
from cte 
Order By cte.ItemCount DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM