簡體   English   中英

如何使用另一列作為乘數而不是行數 MySQL 從表中獲取最高出現值

[英]How to get highest occuring value from table using another column as a multiplier instead of row count MySQL

假設有一個

 dataset(col1,col2) 

with values (1000,1),(1,2),(1,2),(1,2),(1,2),(1,2),(1,2),(999999,3)

. 這是您可以復制粘貼的查詢:

create temporary table tb4 (a INT,b INT);
INSERT INTO tb4(a,b)values(1000,1),(1,2),(1,2),(1,2),(1,2),(1,2),(1,2),(199999,3);
Select avg(tb4.b) from tb4;

這里我想得到 3. 怎么做? 正如您在此設置中看到的 AVG 返回 2 因為它確實是最常見的值。 但我希望它將 'a' 視為“行數”並返回 3,就好像表中存在 'a' 列行的數量(可以這么說)基本上使用名為 'a' 的列作為“常見的“-ity增加器。 但是我不知道如何在查詢中做到這一點。 謝謝

我懷疑你想要一個加權平均值。 你可以做:

select sum(x * y * 1.0) / sum(x)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM