php - 计算列中的 'most selected value'

标签 php mysql

我试图仅使用 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/

相关文章:

php - sql查询连接三个表

MYSQL - 将冒号分隔的列值拆分为新列

java - 从 Oracle Db 切换到 MySQL。命名查询不再有效

php - 如何在 ZF2 Controller 中获取 baseUrl?

php - 添加准备语句导致代码损坏

php - Laravel Eloquent,只选择存在关系的行

mysql - 数据建模/标准化问题

MYSQL,从具有多个相同值行的列中仅获取具有唯一 id 的第一行?

使用 mysql_proxy 进行 MySQL 检测

php - SSL 连接是否提供任何唯一的用户标识符?