Sql 查找整个表中最频繁的记录

Sql 查找整个表中最频繁的记录,sql,ms-access,Sql,Ms Access,在Microsoft Access 2010中,我有一个表,看起来像这样(当然要大得多): 我必须找到所有列中最频繁出现的值(一个数字),并告诉它出现的次数(“日期”不重要) 在这个例子中是25,发生9次 你能帮我吗,因为我不知道怎么做 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 AL

在Microsoft Access 2010中,我有一个表,看起来像这样(当然要大得多):

我必须找到所有列中最频繁出现的值(一个数字),并告诉它出现的次数(“日期”不重要)

在这个例子中是25,发生9次

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

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的解决方案,但我想您可以调整它。

您正在寻找所有列中最频繁的数字?另外,MS Access和MySQL是两种不同的东西,它们使用的SQL语法略有不同。参见规范化。一个规范化的设计可能看起来像这样。。。日期、类型(如A、B等),数字能有多大?我不认为你能在查询中做到这一点,但我有一个解决方案VBA@RocketHazmat是的,我正在找这样的东西。那样的话,谢谢,谢谢,谢谢!诚然,我提出了完全不同的问题,但这是基于你的想法。首先,我用UNION查询了一列我所有的号码,然后又查询了另一列,找到了这列中最频繁的号码,这没什么大不了的。很高兴有人注意到了!
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;