在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次。
你能帮助我吗,因为我不知道怎么做。
答案 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的解决方案,但我想你可以适应它。