sql - 如何选择 COUNT DISTINCT 为 MAX 的行?

标签 sql sql-server select group-by max

这可能是一个简单的问题,但基本上我想在 SQL SERVER 中进行实验时仅选择出现次数最多的行。 我有一个生成以下数据的查询:

SELECT [JOB ROLE], [CITY], COUNT(DISTINCT([EMPLOYEE_ID])) as [COUNT]
FROM MyTable
GROUP BY [JOB ROLE], [CITY]

Result of existing query

我希望达到以下结果,以仅选择 EMPLOYEE_ID 的 COUNT DISTINCT 为 MAX 的行:

Desired outcome

提前非常感谢您提供的有关如何最简单地到达这里的帮助和建议!

最佳答案

如果您不关心关系,可以使用 FIRST_VALUE() 窗口函数来实现:

SELECT DISTINCT [JOB ROLE], 
       FIRST_VALUE([CITY]) OVER (PARTITION BY [JOB ROLE] ORDER BY COUNT(DISTINCT([EMPLOYEE_ID])) DESC)
FROM MyTable
GROUP BY [JOB ROLE], [CITY]

关于sql - 如何选择 COUNT DISTINCT 为 MAX 的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64971175/

相关文章:

java - Update 语句中 @po 附近的语法不正确

mysql - IN 对于许多元素

Mysql where 子句不适用于所有值

java - 以伪随机顺序选择表记录

sql - Postgres多对多映射sql查询

python - 与使用 PyODBC 查询数据库的同事共享 Python .exe 时,是否只需要下载适用于 SQL Server 的 ODBC 驱动程序?

c# - 在客户端计算机上使用 sql server DB 安装 C# 桌面应用程序

sql-server - 重命名多个表

cocoa - NSTextField 焦点上的 selectText

php - 使用 MySQL/PHP 修改 SELECT 返回的值