mysql - 在mysql中炫耀寻找的值指定列
问题描述
我的任务是找到代表最小和最大就业人数的那些工作,只有这些工作的名称。试过这个不成功。
SELECT jobs.JOB_TITLE FROM employees
INNER JOIN jobs ON employees.JOB_ID = jobs.JOB_ID
INNER JOIN employees AS emp1 ON employees.EMPLOYEE_ID = emp1.EMPLOYEE_ID
GROUP BY jobs.JOB_ID
HAVING COUNT(MIN(emp1.EMPLOYEE_ID)) = COUNT(MIN(employees.EMPLOYEE_ID)) OR
COUNT(MAX(emp1.EMPLOYEE_ID)) = COUNT(MAX(employees.EMPLOYEE_ID))
解决方案
如果您的 MySql 版本是 8.0+,您可以使用 FIRST_VALUE() 窗口函数:
SELECT DISTINCT
FIRST_VALUE(j.JOB_TITLE) OVER (ORDER BY COUNT(e.EMPLOYEE_ID)) min_job,
FIRST_VALUE(j.JOB_TITLE) OVER (ORDER BY COUNT(e.EMPLOYEE_ID) DESC) max_job
FROM jobs j LEFT JOIN employees e
ON e.JOB_ID = j.JOB_ID
GROUP BY j.JOB_ID, j.JOB_TITLE
推荐阅读
- crystal-lang - 查看有关 HTTP::Server 的指标或更多见解
- python - JSONDecodeError:期望值:第 1 行第 1 列(字符 0)- 不适用于 Python 3.8
- r - reactiveValuesToList 的行为不符合预期
- python - 从 Pandas 数据帧的每一行中获取前 N 个值及其各自的列名
- python - 如何在 ubuntu 18.04 64bit 上安装 pycurl 7.43
- android - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.view.ViewGroup.addView(android.view.View)”
- javascript - Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义
- java - 在Android 10中请求位置坐标权限的正确方法
- typescript - 如何将用户状态设置为空?
- string - 如何将字符串值转换为数字 - Google 跟踪代码管理器