2013-07-25 47 views
0

我有一組記錄,我想根據組中的項目數對這些記錄進行排序。根據組中的項目數量排序記錄 - SQL Server

The below image is a snapshot of the table

我想安排以這樣的方式記錄,隨着項目的最大數量的產品是在頂部即所要求的順序是 - PRODUCT_ID 3(與6項),然後PRODUCT_ID 1(用5項目),最後一個將是Product_ID 2(包含3個項目)。

以下查詢返回具有相同Product_ID的項目的計數,但是,我希望Item_Name,Item_Description和Item_Number也被排列。

Select Product_ID, Count(*) from Product group by Product_ID order by Count(*) DESC 

我曾嘗試另一個查詢,如下所示,但我知道我錯了地方,它沒有得到所要的結果,我不能想到一個可能的解決辦法的:

Select Product_ID, Item_Name, Item_Description, Item_Number from Product 
group by Product_ID,item_name,item_description,item_number 
order by COUNT(product_ID) 

謝謝提前爲您的幫助!

回答

4
Select Product_ID, Item_Name, Item_Description, Item_Number 
from Product 
order by COUNT(1) over (partition by Product_ID) desc 
+0

真棒,它的作品就像一個魅力。謝謝! – pk188

0

嘗試使用別名:

Select Product_ID, Count(*) AS num_products from Product group by Product_ID order by num_products DESC; 
1

我假設你只通過ID要組,但要列出所有其他領域,你不要在所有如果你需要組只是想訂購:

SELECT product_id, 
     item_name, 
     item_description, 
     item_number 
FROM product p1 
ORDER BY (SELECT Count(product_id) 
      FROM product p2 
      WHERE p1.product_id = p2.product_id) DESC 
+0

是的,你是對的。我不需要按組來查詢,而且查詢工作得很好。 – pk188

相關問題