0

我有一组记录,我想根据组中的项目数对这些记录进行排序。

下图是表格的快照

我想以这样一种方式排列记录,即具有最大项目数的产品位于顶部,即所需的订单是 - 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

3 回答 3

4
Select Product_ID, Item_Name, Item_Description, Item_Number
from Product 
order by COUNT(1) over (partition by Product_ID) desc
于 2013-07-25T21:33:00.663 回答
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 
于 2013-07-25T21:35:02.453 回答
0

尝试使用别名:

Select Product_ID, Count(*) AS num_products from Product group by Product_ID order by num_products DESC;
于 2013-07-25T21:31:51.913 回答