0

我知道如何在 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"

(我的最终目标是在每月列的模式为零的表中找到所有数据ID)

是否有一些简单的方法可以做到这一点(没有昂贵的子查询)或者我最好在 php 中计算模式并将其作为单独的列添加到表中?该表已更新,因此表中的模式值每次都必须更新,我只需要它用于一个快速项目,因此试图避免该路线。

4

1 回答 1

0

这不是你最终想要的吗?

SELECT dataid
FROM your_table
WHERE
    IF(Jan, 1, 0) +
    IF(Feb, 1, 0) +
    IF(Mar, 1, 0) +
    IF(Apr, 1, 0) < 3
于 2013-10-09T17:34:58.573 回答