我有一個 PK CustomerId 型別的表。每個客戶都有幾種型別。
對于每個customer
我想獲得對該客戶重復最多的型別。
我試圖創建一個列"count"
,但我想獲得區域最大值,而不是整個列的全域最大值。
有沒有本地方法可以做到這一點?
uj5u.com熱心網友回復:
獲取對該客戶重復次數最多的型別
您需要按 CustomerId 分組,型別。使用 row_number,您可以按 CustomerId 磁區并按 COUNT(type) 排序。
嘗試:
WITH cte AS (
SELECT CustomerId ,
type,
ROW_NUMBER() OVER (PARTITION BY CustomerId ORDER BY COUNT(type) DESC ) as row_num
FROM test
GROUP BY CustomerId,type
) SELECT CustomerId, type
FROM cte
WHERE row_num = 1 ;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=8e8657dfa08ff170ed3eaf5e335b3582
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494075.html
上一篇:Postgres:在SELECT陳述句第1/2部分中使用計算變數
下一篇:MySQL中的單詞解擾器