我有一个PK CustomerId +类型的表。每个客户都有几种类型。
对于每个customer
,我想获得该客户重复次数最多的类型。
我试图创建一个列"count"
,但我想获得本地最大值,而不是全局最大值为整个col
是否有一种本地的方法来做到这一点?
获取该客户重复次数最多的类型
您需要按CustomerId,type分组。对于row_number,您可以根据CustomerId进行分区,并根据COUNT(类型)进行排序。
试题:
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&小提琴= 8 e8657dfa08ff170ed3eaf5e335b3582