1

データベースはAdventureWorksです。

select COUNT(*) as 'Number of times a product is sold at same quantity' 
from
  Sales.SalesOrderDetail 
group by 
         OrderQty, ProductID 
order by 
         COUNT(*) desc

これにより、次のようなデータが返されます。

Number of times a product is sold at same quantity
--------------------------------------------------
4279
3216
3095
2376
2334
2319
2234
2201
2121
2025
1712
1488
1396
1161
1044

およびその他の2600行以上。

4279を出力として取得することに興味があります。

Maxは集計関数やサブクエリでは機能しないため、適用できません。とにかくやってみました。動作しませんでした。

count(*)は列ではないので、できないと思います。しかし、方法がある場合:

どうすればそのような出力の最大値を取得できますか?

4

1 に答える 1

2

TOP結果の数を制限するために追加するだけです

select TOP 1 COUNT(*) as 'Number of times a product is sold at same quantity' 
from  Sales.SalesOrderDetail 
group by  OrderQty, ProductID 
order by  COUNT(*) desc

更新1

WITH results 
AS
(
  select COUNT(*) as [Number of times a product is sold at same quantity],
         DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) rank_no 
  from   Sales.SalesOrderDetail 
  group   by OrderQty, ProductID 
)
SELECT [Number of times a product is sold at same quantity]
FROM   results
WHERE  rank_no = 2
于 2013-03-16T11:31:53.313 に答える