我试图仅使用 mysql 计算列的最选定值,但我不知道这是否可能,或者我是否还需要使用 php ...
所有值都是 1 到 12 之间的整数,它们是前端所做选择的 id,表格 (id:table) 如下所示:
id | value_1 (int) | value_2 (int) | value_3 (int)
编辑:
这样我就可以获得列“value_1”中被选中最多的部分:
SELECT value_1, count( * ) total
FROM table
GROUP BY value_1
ORDER BY total DESC
LIMIT 1
如何在单个 SQL 语句中获取树列中所有最常选择的值 (value_1 | value_2 | value_3)?
<小时/>按照重复的询问链接,我也尝试过此操作,但它返回一个错误:
select value_1, count(*) total
from (
select @r := if(total>@r,total,@r) maxcount, value_1, total
from (select @r:=0) initvars, (
select value_1, count(*) total
from table
group by value_1
) X ) Y
where total = @r
MYSQL ERROR : #1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
最佳答案
SELECT id,
COUNT(val1)As 'First Value',
COUNT(val2)As 'Second Value',
COUNT(val3)As 'Third Value'
FROM alez
GROUP BY id
ORDER BY id DESC
所选编号最大的 ID 将首先出现。然后将根据被选中最多的数字从高到低进行排序。
关于php - 计算列中的 'most selected value',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21111045/