Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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 - Fatal编程技术网

SQL,如何提取条目的最大出现次数

SQL,如何提取条目的最大出现次数,sql,Sql,我想提取人名表中出现次数最多的姓名,并且此人的国籍是印度人。我试着做MAX(COUNT(a.name)),但不起作用。你知道怎么做吗 也许这就是你想要的: SELECT a.name,a.birth_year,COUNT(a.name) FROM HUMAN a WHERE EXISTS(SELECT b.citizenship FROM NATIONALITY b WHERE b.citizenship='Ind

我想提取人名表中出现次数最多的姓名,并且此人的国籍是印度人。我试着做MAX(COUNT(a.name)),但不起作用。你知道怎么做吗

也许这就是你想要的:

SELECT a.name,a.birth_year,COUNT(a.name)
FROM HUMAN a
WHERE EXISTS(SELECT b.citizenship
                    FROM  NATIONALITY b
                    WHERE b.citizenship='Indian')
GROUP BY a.name,a.birth_year;
SELECT a.name,a.birth_year,COUNT(a.name) as c
FROM HUMAN a
WHERE EXISTS(SELECT b.citizenship
                FROM  NATIONALITY b
                WHERE b.citizenship='Indian')
GROUP BY a.name,a.birth_year
ORDER by c DESC
LIMIT 0, 1;

仅获取前1行
是ANSI标准,但并非所有数据库都支持它。您的数据库可能会使用
limit
top
或其他功能。

是的,使用嵌套的select查询很容易做到这一点

select h.name
from human h join
     citizenship c
     on h.name = b.name
where c.citizenship = 'Indian'
group by h.name
order by count(*) desc
fetch first 1 rows only;

您使用的是哪种数据库管理系统?SQL Server、oracle、mysql。。。?
Select max(count1),name1 from (
SELECT a.name name1,COUNT(a.name)     count1 FROM HUMAN a WHERE EXISTS(SELECT  b.citizenship FROM NATIONALITY b WHERE b.citizenship='Indian') GROUP BY a.name)