SQL数据库 计算出每个部门的平均工资 最高工资和最低工资 语法怎么写?

SQL数据库 计算出每个部门的平均工资 最高工资和最低工资 语法怎么写?,第1张

select avg(salary), max(salary), min(salary)。

from table。

group by department。

"Oh, who was that?" Mr. Black asked. “哦,是谁?”布莱克先生问。

"Oh, how blind you are!" he cried. “哎呀,你难道瞎了吗!”他大声道。

"Oh,what‘s that?" I asked。“噢,那是什么?”我问道。

动名词V-ing:动名词是一种兼有动词和名词特征的非限定动词。它可以支配宾语,也能被副词修饰。动名词有时态和语态的变化。

动词不定式:由to+动词原型构成。不定式是一种非限定性动词。而非限定动词是指那些在句中不能单独充当谓语的动词,可分为不定式、动名词、现在分词和过去分词。

分词[participle]:具有动词及形容词二者特征的词;尤指以ing、ed、d、t、en或n结尾的英语动词性形容词,具有形容词功能,同时又表现各种动词性特点,如时态,语态、带状语性修饰语的性能及带宾词的性能。

扩展资料:

SQL包括了所有对数据库的 *** 作,主要是由4个部分组成:

1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。

2.数据 *** 纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类 *** 作,其中数据更新又包括插入、删除和更新三种 *** 作。

3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。

参考资料来源:百度百科-SQL数据库

你是要统计每个部门各档次薪资的人数吗?

你可以用类似如下的语句来实现,其中sm_dep为你的部门表名。

select a.deptid,b.deptname,

count(case when salary <1000 then 1 end) as 1000以下,

count(case when salary >= 1000 and salary <2000 then 1 end) as 1000(含)-2000(不含),

count(case when salary >= 2000 and salary <3000 then 1 end) as 2000(含)-3000(不含),

count(case when salary >= 3000 and salary <4000 then 1 end) as 3000(含)-4000(不含)

from sm_employee a,sm_dep b

where a.deptid = b.deptid

group by a.deptid,b.deptname

用一句话还是比较复杂的,虽然需求看上去并不复杂:D

--方案---------------------------

同一个表,作自关联(行号=行号-1)。

WITH EmpSalary AS ( -- 因为结果集要自关联,使用CTE(公共表达式),可避免写n遍

SELECT

ROW_NUMBER() OVER (ORDER BY Value) AS RowNo -- 生成行号,按工资排序

,VALUE AS Salary

FROM dbo.Test

)

SELECT E1.*

,E2.Salary - E1.Salary AS Diff

FROM EmpSalary E1

LEFT JOIN EmpSalary E2 ON E2.RowNo = E1.RowNo + 1 -- 表自关联

ORDER BY E1.Salary

注:

1、以上代码使用了CTE(公共表达式),这样代码清晰。

2、不可使用内部字段(ID、EmpNo等),避免因为跳号而关联错误

3、相应地,使用了ROW_NUMBER()函数来产生临时性的行号


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10820202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存