假設一個表像SQL:瀏覽量超過次數
PROD |SIZE|..
-------|----|--
ProdA |150 |..
ProdA |200 |..
ProdA |200 |..
ProdA |200 |..
ProdB |150 |..
ProdB |150 |..
ProdB |150 |..
ProdC |200 |..
.... |... |..
我需要一個查詢,以匹配每個產品最多發生的歷史大小,從而導致:
PROD |SIZE|..
-------|----|--
ProdA |200 |..
ProdB |150 |..
我想我必須使用一個複雜的rank() over(partition)
其中有一些count()
構建,但不知何故我無法弄清楚。
我被困在
SELECT
PROD
, SIZE
FROM (
SELECT
PROD
, SIZE
, RANK() OVER (PARTITION BY PROD ORDER BY COUNT(SIZE)) AS RANK
)
WHERE
RANK = 1
編輯:增加了一個列例子來闡明有更多的數據..
你準確地粘在哪裏?我想,你收到了一條你沒有告訴我們的錯誤信息?我們爲什麼猜測?你忘了FROM和GROUP BY子句,也許你不應該使用RANK作爲別名。然後你忘了訂購*降序*。除此之外,你的查詢看起來很好。 –