我正在学习SQI,我有一个问题,如下:
我试着在下面查询,但是我得到错误。
**select min(avg(salary)) from department groupby dno;**
有人能帮我解决这个问题吗,或者其他可能的解决方案?
enxuqcxy1#
使用TOP 1:
select top 1 avg(salary) AS avg_salary from department group by dno order by avg_salary
5lhxktic2#
使用从子查询中选择的方法:
select min(T.avg_salary) as min_salary from ( select avg(salary) as avg_salary from department group by dno ) T;
but5z9lq3#
从概念上讲,min和avg都是一个集合操作。附带地,min(avg(salary))== avg(salary),因为对于给定的一组数字只有一个avg。显然,您可以计算从部门中选择最小值(薪金)、平均值(薪金)这将告诉你部门中的最低工资,根据定义,除非所有的工资都是一样的,否则它将小于平均值。这是一个奇怪的用例。你可能会想:按部门从员工组中选择部门、最低(薪金)、最高(薪金)、平均(薪金)为了理解一个新的分布,我将经常使用从目标表中选择最小值(目标值)、最大值(目标值)、平均值(目标值)才能了解数值的范围。
3条答案
按热度按时间enxuqcxy1#
使用TOP 1:
5lhxktic2#
使用从子查询中选择的方法:
but5z9lq3#
从概念上讲,min和avg都是一个集合操作。附带地,min(avg(salary))== avg(salary),因为对于给定的一组数字只有一个avg。显然,您可以计算
从部门中选择最小值(薪金)、平均值(薪金)
这将告诉你部门中的最低工资,根据定义,除非所有的工资都是一样的,否则它将小于平均值。这是一个奇怪的用例。
你可能会想:按部门从员工组中选择部门、最低(薪金)、最高(薪金)、平均(薪金)
为了理解一个新的分布,我将经常使用
从目标表中选择最小值(目标值)、最大值(目标值)、平均值(目标值)
才能了解数值的范围。