SQL ROW_NUMBER() OVER(partition で欲しいデータを得る

同じ品物を何度も購入したとき、最安値は?

同じ品物を何度も購入したとき、最後に購入した時の価格は?

など いろんな条件でデータが欲しくなります。

 

そんなとき、ROW_NUMBER() OVER(partition 

を使うと便利です。

 

元々のデータ

f:id:nminebb:20191210175026p:plain

検索するコード

 SELECT * FROM (  

    SELECT [品名]   ,[購入単価]  

     ,ROW_NUMBER() OVER(partition by 品名 Order by 購入単価 ASC) as Num  

      FROM [dbo].[ZZ_RowTest] 

) AS A  where Num = 1

結果  2つの品物の 安値を見つけました。

f:id:nminebb:20191210175226p:plain