我正在尋找最簡單的方法來返回分組的select語句的多個列結果中最常見的值。我在網上找到的所有東西都指向RANK中選擇的單個項目,或者在GROUP BY之外單獨處理每個列。SQL函數返回一個組中多個列的「最常見值」按
樣本數據:
SELECT 100 as "auser",
'A' as "instance1", 'M' as "instance2"
union all select 100, 'B', 'M'
union all select 100,'C', 'N'
union all select 100, 'B', 'O'
union all select 200,'D', 'P'
union all select 200, 'E', 'P'
union all select 200,'F', 'P'
union all select 200, 'F', 'Q'
樣本數據結果:
auser instance1 instance2
100 A M
100 B M
100 C N
100 B O
200 D P
200 E P
200 F P
200 F Q
查詢邏輯(我看到它在我的頭上):
SELECT auser, most_common(instance1), most_common(instance2)
FROM datasample
GROUP BY auser;
期望的結果:
100 B M
200 F P
使用 –
如果什麼有一搭請註明您的RDBMS? –
SQL Server。如果有領帶,我想用MIN()包裝它,但是我想看看這是否可能首先。 –