SQL,如何提取条目的最大出现次数
我想提取人名表中出现次数最多的姓名,并且此人的国籍是印度人。我试着做MAX(COUNT(a.name)),但不起作用。你知道怎么做吗 也许这就是你想要的: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
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)