我知道如何在mysql的单个列中找到模式(最常见的值),但我想弄清楚是否可以在特定行的多个列中找到该模式。到目前为止,我已经空手而归,如何去做。
我的表格如下:
dataid Jan Feb Mar Apr
a 0 1 1 1
b 0 0 0 1
c 1 0 0 0
d 7 0 3 3
每行的模式是:
a 1
b 0
c 0
d 3
平均值对我正在使用的数据中所需的结果不起作用,因此我需要为所有列中的每一行找到最常见的值。我知道这不存在,但我正在寻找的东西是
"select mode(Jan+Feb+Mar+Apr) from tablename where dataid=c"
(我的最终目标是找到表中所有数据类,其中每月列的模式为零)
有没有一些简单的方法可以做到这一点(没有昂贵的子查询)或者我最好在php中计算模式并将其作为单独的列添加到表中?此表得到更新,因此每次都必须更新表中的模式值,我只需要一个快速项目,所以试图避免该路由。
答案 0 :(得分:0)
这不是你最终想要的吗?
SELECT dataid
FROM your_table
WHERE
IF(Jan, 1, 0) +
IF(Feb, 1, 0) +
IF(Mar, 1, 0) +
IF(Apr, 1, 0) < 3