在WHOLE表中查找最常见的记录

时间:2014-02-26 18:08:53

标签: sql ms-access

在Microsoft Access 2010中,我有一个看起来像这样的表(当然它更大):

Date           A         B         C         D         E           F
2008-01-02    25        24        27        25        65          34
2008-01-03    28        25        38        10        43          25
2008-01-04    14        16        25         9        22          55
2008-01-05    25        16        11        25        99          44
2008-01-06    21        16        11        25        25          98

我必须找到所有列中最常出现的值(一个数字)并告诉它出现的次数('日期'并不重要)。

所以在这个例子中它将是25,这发生了9次。

你能帮助我吗,因为我不知道怎么做。

1 个答案:

答案 0 :(得分:1)

SELECT val, COUNT(*) ttl FROM
(
SELECT date, 'A' type, a val FROM my_table
UNION ALL
SELECT date, 'B', b val FROM my_table
UNION ALL
SELECT date, 'C', c val FROM my_table
UNION ALL
SELECT date, 'D', d val FROM my_table
UNION ALL
SELECT date, 'E', e val FROM my_table
UNION ALL
SELECT date, 'F', f val FROM my_table
) x
GROUP BY val ORDER BY ttl DESC LIMIT 1;

这是一个通用的解决方案,因此它的某些部分实际上是多余的。

哦,这个MySQL的解决方案,但我想你可以适应它。