mysql 我在下面的问题中卡住了,请帮助我解决[关闭]

sqxo8psd  于 2023-04-12  发布在  Mysql
关注(0)|答案(1)|浏览(139)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2小时前关门了。
Improve this question
1.选择将根据最大年龄选择员工的查询

  1. select department,id,age from(select id,department,age,max(age)over(partition by department)as Mage from table)其中age= mage
    1.从表中选择不同的部门,ID,年龄按部门排序,年龄说明
    (a)1和2都可以
    (b)% 1工作,但% 2不工作
    (c)2工作,但1不工作
    (d)两者都不正确
    正确的解决方案是什么
tf7tbtn2

tf7tbtn21#

(b)% 1工作,但% 2不工作

**1.**子查询按部门获取max(年龄)。

select id, department, age
      , max(age) over ( partition by department) as mage 
   from table

对于Dept 1,这可能会返回类似于
| 身份证|部门|年龄| Mage |
| --------------|--------------|--------------|--------------|
| 空1|部门1|二十三|三十二|
| 空2|部门1|十九|三十二|
| Emp3|部门1|三十二|三十二|
外部查询中的where子句

select department,id, age from (*Sub Query*) where age = mage

比较age列和 Mage 列。因为它们只在Emp 3上匹配,所以这是Dept 1返回的唯一一行。
| 部门|身份证|年龄|
| --------------|--------------|--------------|
| 部门1|Emp3|三十二|

**2.**这个程序不工作,因为语法错误。'Select distinct on department...'不正确。它应该是'select distinct department...'。On会抛出错误。即使你修复了这个问题,这个程序仍然不工作。它没有找到最大年龄。它只是把年龄按顺序排列。

select distinct on department, id, age from table order by department, age desc

相关问题