获取表中记录最多的id
Posted
技术标签:
【中文标题】获取表中记录最多的id【英文标题】:Get id with most records in the table 【发布时间】:2022-01-06 17:05:11 【问题描述】:表格名称:办公室
CompanyID OfficeLocation
01 USA
01 Africa
03 USA
04 USA
04 Israel
04 Germany
05 Africa
我需要获取该表中记录最多的 CompanyID(上表为 04) 我试过了:
SELECT CompanyID
GROUP BY CompanyID
HAVING COUNT(*) = (
SELECT COUNT (*) FROM EntitySite
GROUP BY CompanyID
ORDER BY COUNT(*) DESC
)
Dsnt 工作(
【问题讨论】:
【参考方案1】:您可以使用下一个简单查询:
SELECT CompanyID, COUNT(OfficeLocation) CountOfficeLocation
FROM EntitySite
GROUP BY CompanyID
ORDER BY CountOfficeLocation DESC
LIMIT 1;
mysql query online
【讨论】:
【参考方案2】:首先,问题是抽象的,数据没有明显的关系(不同的id有不同的国家),不知道计数时考虑什么id(第一个,最后一个或随机)。
但是,这是我得到的查询,这将首先返回最常见的,最后返回最不常见的。
SELECT CompanyID
FROM
(
SELECT count(*) as c,
CompanyID
FROM Offices
GROUP BY CompanyID
) T
ORDER BY c desc
【讨论】:
我有带办公室的桌子,而我在其他桌子上有公司。我需要找到办公室最多的公司,也就是办公室表中记录最多的公司。因此,办公桌具有代表公司和办公地点的 ID。如果公司有 3 个办公室 - office 表中有 3 条记录具有相同的公司 ID,而其他列(如地址等)中有不同的内容。尝试了您的查询,但它返回了有 1 条记录的公司:/以上是关于获取表中记录最多的id的主要内容,如果未能解决你的问题,请参考以下文章