取一種型別裡面的產品銷售前3甲的資料Sql

2021-09-06 21:42:53 字數 871 閱讀 9329

需求:取出每種分類裡面的銷售前3甲的產品資訊

表設計如下圖:

資料如下:

兩種方法可以實現:

1.select * from

(select row_number() over(partition by categoryid order by salenum desc) as saleseq,* from productsale

) awhere saleseq < 4

2.select * from dbo.productsale t

where productid in

(select top 3 productid from dbo.productsale m

where m.categoryid = t.categoryid

order by salenum desc

)order by t.categoryid, t.salenum desc

結果如下圖:

說明:此2種方法可以在前3甲的產品銷售數量不相等時準確查詢出前3甲的產品銷售資訊,但如果前3甲中有銷售數量相同的產品,

則有可能是少取了另一些產品,比如銷售第一1種產品,銷售第二1種產品,銷售第三3種產品,

則會在銷售第三的3種產品中取乙個產品返回,其實是少了並列的2種產品的,此處需要注意。

超級實用的一種型別 匿名型別

既然說到匿名範例超等適用,得要找到場景來壓服一下,假如人人玩過php,外面有乙個全能的聯絡關係陣列array,任你在聯絡關係陣列array外面怎樣寫,均可以或許用json encode來天生json,異常異常的便利。看到如許的json是不是有一種很爽的感到?是的,確其實咱們開闢中異常的適用,那末成績...

go 函式也是一種型別, 匿名函式

函式也是一種型別 package main import fmt 自定義函式型別 接受兩個int引數,返回int型別 type op func func int,int int func main func test func 100,200 fmt.println 匿名函式100 200 resu...

php7 引用成為一種型別

a abc is ref 0 ref count 1 b a is ref 0 ref count 2 c a is ref 1 ref count 2 即a c 共用乙個zval,b單獨用乙個zval 當然 ref count為1 c 2 a range 10000 b a count a1 相當...