首页 > 其他分享 >group by 语句

group by 语句

时间:2022-11-14 00:45:11浏览次数:52  
标签:语句 INSERT group -- INTO VALUES emp NULL

 1 -- 一、group by 分组统计
 2 -- select语句中的 group by 子句对列进行分组
 3 --     格式: select  列名1,列名2,列名3....from   表名   group  by 列名
 4 
 5 -- Having 子句用于限制分组显示结果
 6 
 7 -- 创建部门表数据
 8     CREATE  TABLE dept(number INT UNSIGNED NOT NULL DEFAULT 0,
 9                         dept_name VARCHAR(20) NOT NULL DEFAULT  " ",
10                         address VARCHAR(25) NOT NULL DEFAULT  " ",
11                         salary FLOAT  NOT NULL DEFAULT 0 );
12                         
13 --     drop table dept;
14 -- 添加数据
15 INSERT INTO dept (number,dept_name,address,salary)VALUES(01,'总部', '云南',15000),(02,'研发部' ,'文山',5600),
16                                                     (03,'市场部','红河',3000),(04,'财务部','昆明',2500);
17 SELECT *FROM dept;
18 
19 
20 
21 
22 -- 创建员工表
23 CREATE TABLE emp(empo_number INT,                                                         /*员工编号*/
24                     enname VARCHAR(10)  NOT NULL DEFAULT ' ',   /*员工姓名*/
25                     job VARCHAR(10) NOT NULL DEFAULT ' ' ,            /*工作*/
26                     mgr  MEDIUMINT UNSIGNED ,            /*上级编号*/
27                     job_time DATE NOT NULL ,                    /*入职时间*/
28                     salary DECIMAL(7,2) NOT NULL,        /*工资*/
29                     bonus DECIMAL(5,2) NOT NULL,            /*奖金*/
30                     dept_number INT UNSIGNED NOT NULL DEFAULT 0);        /*部门编号*/
31                     
32 ALTER  TABLE emp  MODIFY bonus DECIMAL(7,2);
33 
34  INSERT INTO emp VALUES(100,'tom','程序开发员',20,'2000-1-1',10960.00,6900.00,3);
35  INSERT INTO emp VALUES(101,'jack','科员',30,'2001-11-1',4960.00,3200.00,1);
36  INSERT INTO emp VALUES(102,'mark','专职教师',40,'2002-11-1',5960.00,3100.00,2);
37  INSERT INTO emp VALUES(103,'smith','经理',50,'1996-10-1',7960.00,3200.00,3);
38  INSERT INTO emp VALUES(104,'june','销售员',60,'2020-11-6',4960.00,3000.00,4);
39  INSERT INTO emp VALUES(105,'xiaoming','裁判',70,'2021-11-1',3560.00,3200.00,1);
40  INSERT INTO emp VALUES(106,'xioahuang','运动员',80,'2010-9-1',2960.00,3200.00,2);
41  INSERT INTO emp VALUES(107,'xiaonong','保安',90,'2019-11-1',3960.00,300.00,4);
42  INSERT INTO emp VALUES(108,'xiaolu','秘书',00,'2020-11-1',5960.00,3000.00,2);                    
43                     
44 SELECT  DISTINCT*FROM emp;
45 
46 DELETE  FROM emp WHERE  job_time ='2020-11-1';
47 
48 
49 -- 工资级别表
50 CREATE TABLE  sal_grade( grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
51                         lowsal  DECIMAL(17,2) NOT NULL,
52                         heisal DECIMAL(17,2) NOT NULL);
53                         
54 INSERT INTO sal_grade VALUES(1,2000,3500);
55 INSERT INTO sal_grade VALUES(2,3500,4500);
56 INSERT INTO sal_grade VALUES(3,4500,6000);
57 INSERT INTO sal_grade VALUES(4,6000,7500);
58 INSERT INTO sal_grade VALUES(5,7500,9000);
59 
60 SELECT *FROM  sal_grade;
61    
62 --    查询每个部门的每种岗位的平均工资和最高工资、最低工资
63 
64 SELECT AVG(salary), MIN(salary),dept_number,job 
65                             FROM emp  GROUP BY dept_number,job;
66                             
67                             
68 -- 显示平均工资低于5000的部门号和它的平均工资
69 
70 分析:1.显示每个部门的平均工资和部门号
71          2.在1的基础上进行过滤,平均工资<2500
72      SELECT AVG(salary),dept_number FROM emp GROUP BY dept_number;
73 
74 -- Having 子句用于限制分组显示结果
75         
76      SELECT AVG(salary),dept_number FROM emp
77                                     GROUP BY dept_number
78                                             HAVING AVG(salary)<2500;
79 -- 使用别名
80  SELECT AVG(salary) AS ' 平均工资',dept_number FROM emp
81                                     GROUP BY dept_number
82                                             HAVING ' 平均工资' <6000;

 

标签:语句,INSERT,group,--,INTO,VALUES,emp,NULL
From: https://www.cnblogs.com/nzm-2019/p/16887828.html

相关文章

  • mysql-最常用SQL语句大全
    DDL(DataDefinitionLanguage)数据定义语言一、操作库 --创建库createdatabasedb1;--创建库是否存在,不存在则创建createdatabaseifnotexists/ɪɡˈzɪsts......
  • SAP 电商云 CMSUserGroupRestriction 在 Spartacus 里的 evaluation 问题
    问题描述已经设置了CMSUserGroupRestriction,在Accelerator上可以正常工作,但在Spartacus上不工作。注意到的是导航节点根据restriction已经处于deactivated状态,但......
  • 分别应用while语句、do-while语句和for语句, 求出100以内所有奇数的和。分析三种循环语
    //#include<stdio.h>//intmain()//{// inta,b,c;// b=1;a=1;c=0;// while(a<100)// {// b=a+b;// printf("%d",a); // c=a+c;// a=a+2;// }// prin......
  • 分支语句/选择语句switch
    switch语句switch(整型表达式){ 语句项;}语句项//是一些case语句//如下:case整型常量表达式;语句;break语句把语句划分为不同部分default语句switch......
  • Oracle 19C学习 - 22. WITH AS 语句
    什么是WITHAS语句WITHAS相当于虚拟视图。WITHAS也叫做分解子查询或者片段子查询。定义一个SQL片段,该片段会被后面的SQL语句用到,可以近似看作一个可用的临时视图。......
  • SQL语句查询优化方法
    建立索引并命中索引,在查询的时候,要尽量让数据库引擎使用索引。加入explain执行计划1.尽量避免使用select*2.尽量避免使用!=3.尽量避免使用or优化方式:可以用unio......
  • kafka-consumer-groups 命令行工具使用手册,Kafka 管理必备
    kafka-consumer-groups命令行工具使用手册该手册原文出自​​$KAFKA_HOME\bin\windows\kafka-consumer-groups.bat--help​​命令的输出结果,并由​​Redisant​​提供......
  • Oracle 19C学习 - 19. MERGE语句
    Merge语句的作用Merge语句可以根据不同条件,获取插入、更新、删除数据表中的行,然后从一个或者多个数据源头对表进行更新或向表中插入行。Merge语句的语法MERGEINTO表名......
  • SQL语句的分类
    目录SQL语句的分类DQLDMlDDLTCLDCL:SQL语句的分类DQL数据查询语言(凡是带有select关键字的都是查询语句)selectDMl数据操作语言(凡是对表中数据进行增删改的都是DML)增:in......
  • 一个项目涉及到的50个Sql语句
    一个项目涉及到的50个Sql语句/*标题:一个项目涉及到的50个Sql语句(整理版)作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)时间:2010-05-10地点:重庆航天职业学院说明:以下五十......