gpt4 book ai didi

MySQL 选择最常出现的或平均的

转载 作者:行者123 更新时间:2023-11-29 00:36:01 27 4
gpt4 key购买 nike

我有一个 MySQL 表,我想从中选择:

1) “最常出现的”值,如果有的话

2) 或“平均”值,如果没有出现次数最多的值。

示例表 1:

value
1
2
3
4

所有值均等出现,因此我想采用 AVG(`value`)

示例表 2:

value
1
2
2
3

Value 2 为准,因此我想选择值 2。

什么 mysql 查询会执行此操作?

最佳答案

从 Gordon 的回答开始,我在 SQL Fiddle 中测试并更正了 SQL 查询:

SELECT IF(t4.numcnts = 1, t1.avgvalue, t2.topvalue) AS result 
FROM (select avg(value) as avgvalue from test) t1
CROSS JOIN (select value as topvalue from test group by value order by count(*) desc limit 1) t2
CROSS JOIN join (select count(distinct cnt) as numcnts from
(select count(*) as cnt from test group by value) t3) t4

这是带有两个测试表的 fiddle (切换出 test2 进行测试以查看特定值占优势时的结果):http://sqlfiddle.com/#!2/76914/3

我的更改是在 SELECT 子句中使用 IF 而不是 CASE 语句,并为子选择添加必要的表别名.

关于MySQL 选择最常出现的或平均的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14289574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com