Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 返回最频繁发生的事件_Sql_Ms Access - Fatal编程技术网

Sql 返回最频繁发生的事件

Sql 返回最频繁发生的事件,sql,ms-access,Sql,Ms Access,我正在使用MS Access 2010 如果我有这样一张桌子: 表1: FirstName LastName Alex AAA Max AAA Stewie BBB Barney BBB John AAA 什么查询可以返回最频繁的LastName以及它出现的次数? 在这种情况下,它应该返回: AAA 3 但是,如果姓氏的频

我正在使用MS Access 2010

如果我有这样一张桌子:

表1:

FirstName         LastName

  Alex              AAA
  Max               AAA
  Stewie            BBB
  Barney            BBB
  John              AAA
什么查询可以返回最频繁的LastName以及它出现的次数? 在这种情况下,它应该返回:

AAA      3
但是,如果姓氏的频率相同(出现的时间相同),那么它应该同时返回这两个名称

我搜索了net和stackoverflow,尽管许多问题都很相似,但它们要么不能解决我的问题,要么是针对SQL Server以外的另一种方言


谢谢。

Top在MS Access中返回匹配项:

Select
   LastName,
   count (*) as HowManyTimes
from myTable
Group By LastName
Order By count(*)
SELECT TOP 1 * 
FROM (SELECT names.LastName, Count(names.LastName) AS CountOfLastName
      FROM [names]
      GROUP BY names.LastName) a
ORDER BY CountOfLastName Desc

因此,当有多行具有相同频率时,上面的查询将返回多行。

选择LastName,COUNT(*)as Res GROUP BY LastName ORDER BY Res DESC LIMIT 1
就是我想到的。如果你使用Access,为什么要用MySQl标记它?谢谢你,这很有魅力!您能再解释一下SELECT TOP 1*的作用吗?
SELECT TOP 1
从ORDER BY中选择第一个匹配值。在本例中,ORDER BY是频率的计数,最高优先(DESC),因此是具有任何匹配项的最频繁名称。您可以
选择Top
,或
Top%