精华内容
下载资源
问答
  • 分组函数

    千次阅读 2018-10-15 22:49:21
    分组函数 常用的一些函数 AVG(sal), MAX(sal), MIN(sal) MIN(hiredate) , MAX(hiredate) 中间的工资值 MEDIAN(sal) 标准差与方差 STDDEV(sal),VARIANCE(sal) 注意事项一: 如果没有GROUP BY子句,则在SELECT...

    分组函数
    常用的一些函数
    AVG(sal), MAX(sal), MIN(sal)
    MIN(hiredate) , MAX(hiredate)
    中间的工资值 MEDIAN(sal)
    标准差与方差 STDDEV(sal),VARIANCE(sal)

    注意事项一:
    如果没有GROUP BY子句,则在SELECT子句中只能出现统计函数,其他任何字段都不允许 出现。
    错误范例:统计出每个部门的人数 select deptno,count(empno)from emp;
    正确范例:统计出每个部门的人数 select count(empno)from emp

    注意事项二:
    SELECT 子句后只允许出现分组字段和统计函数,而其他的非分组字段不能使用。
    错误范例:统计出每个部门的人数 select deptno,ename,count(empno)from emp group by deptno;
    正确范例: 统计出每个部门的人数 select deptno,count(empno)from emp group by deptno;

    注意事项三:
    统计函数允许嵌套使用,但是嵌套统计函数之后的SELECT子句中不 允许再出现任何的字段,包括分组字段。。
    正确范例:求出每个部门平均工资最高的工资 SELECT MAX(AVG(sal)) FROM emp GROUP BY deptno ;
    错误范例:求出每个部门平均工资最高的工资 SELECT deptno MAX(AVG(sal)) FROM emp GROUP BY deptno ;
    就不截屏了,有疑问可以自己试试

    下面是一些参考实体,很有学习价值
    例 查询每个部门的名称、部门人数、部门平均工资、平均服务年限
    在这里插入图片描述
    在这里插入图片描述
    例:查询出公司各个工资等级雇员的数量、平均工资
    在这里插入图片描述
    在这里插入图片描述
    例:统计出领取佣金与不领取佣金的雇员的平均工资、雇员人数。
    在这里插入图片描述
    在这里插入图片描述
    例:现在要求查询出每个部门的详细信息,包括部门编号、部门人数、平均工资、总工资、最高工资、最低工资
    在这里插入图片描述
    在这里插入图片描述

    HAVING子句
    目的:分组之后的数据进行再次过滤(组函数不能再where语句中出现,所以关于组函数的删选用having完成)。
    SQL语句执行流程:

    1. 执行FROM子句,确定要检索的数据来源。
    2. 执行WHERE子句,使用限定符对数据行进行过滤。
    3. 执行GROUP BY子句,根据指定字段进行分组。
    4. 执行HAVING子句,对分组后的统计数据进行过滤。
    5. 执行SELECT子句,确定要检索出的分组字段以及编写相应统计函数。
    6. 执行ORDER BY子句。

    例:列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资
    在这里插入图片描述
    在这里插入图片描述
    例:显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且满足从事同一工作的雇员月工资合计大于5000,输出结果月工资按升序排列
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • MySQL分组函数

    千次阅读 2019-04-19 19:32:48
    分组函数: 作用:用作统计使用,又称为聚合函数或者统计函数或者组函数。 分类: sum() 求和 avg() 求平均值 max() 求最大值 min() 求最小值 count() 计算个数 特点: sum() , avg()一般用于处理数值 max() ...

    分组函数:

    作用:用作统计使用,又称为聚合函数或者统计函数或者组函数。
    

    分类:

    • sum() 求和
    • avg() 求平均值
    • max() 求最大值
    • min() 求最小值
    • count() 计算个数

    特点:

    1. sum() , avg()一般用于处理数值

    2. max() , min() , count()可以处理任何类型。

    3. 以上分组函数都会自动过滤null。

    4. 可以实现与distinct组合使用。

    例子:

        --sum() 求和
        select sum(salary) from employees;
        
        --avg() 求平均值
        select avg(salary) from employees;
        
        --max() 求最大值
        select max(salary) from employees;
        
        --min() 求最小值
        select min(salary) from employees;
        
        --count() 计算个数
        select count(commission_pct) from employees;
    

    分组查询:

    语法:

    select 查询列表 from 表 【where 筛选条件】 group by 分组字段 【order by】 【having 条件】
    

    特点:

    1、和分组函数一同查询的字段必须是group by后出现的字段
    2、筛选分为两类:分组前筛选和分组后筛选
    3、分组可以按单个字段也可以按多个字段
    4、可以搭配着排序使用

    分组前筛选原始表  group by前where
    分组后筛选group by后的结果集  group by后having
    

    问题1:分组函数做筛选能不能放在where后面答:不能
    问题2: where- droup by- having

    一般来讲,能用分组前筛选的,尽量使用分组前筛选,提高效率

    例题:

    --查询将每个工种的员工的平均工资
    select job_id,avg(salary) from employees GROUP BY job_id;
    
    --查询邮箱中包含a字符的,每个部门的最高工资。
    select department_id,MAX(salary) from employees where email like '%a%' GROUP BY department_id;
     
    --查询有奖金的每个领导手下员工的平均工资。
    select manager_id,AVG(salary) from employees where commission_pct is not null GROUP BY manager_id; 
    
    --查询员工表中的最大入职时间和最小入职时间的相差天数 ( TO_DAYS() 将日期时间转换成天数)
    select TO_DAYS(MAX(hiredate))-TO_DAYS(MIN(hiredate)) from employees;
    
    select DATEDIFF(MAX(hiredate),MIN(hiredate)) from employees;		( DATEDIFF() 计算两段时间的天数 )
    
    --查询部门编号为90的员工个数
    select department_id,COUNT(employee_id) FROM employees where department_id = 90 GROUP BY department_id;
    --查询公司员工工资的最大值,最小值,平均值,总和
    select MAX(salary),MIN(salary),AVG(salary),SUM(salary) from employees;
    
    --查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资。
    select job_id,MAX(salary) from employees where commission_pct is not null GROUP BY job_id HAVING MAX(salary)>12000;
    
    ----查询每个工种有奖金的员工的最高工资>6000的工种编号和最高工资, 按照最高工资升序。
    select job_id,MAX(salary) from employees where commission_pct is not null GROUP BY job_id HAVING MAX(salary)>6000 ORDER BY MAX(salary) DESC;
    
    --查询每个工种每个部门的最低工资,并按最低工资降序
    select job_id,department_id,min(salary) from employees GROUP BY job_id,department_id ORDER BY MAX(salary) DESC;
    
    --查询各job_id的员工工资的最大值,最小值,平均值,总和,并按job_id升序
    select MAX(salary),MIN(salary),AVG(salary),COUNT(salary) from employees GROUP BY job_id ORDER BY job_id;
    
    --查询员工最高工资和最低工资的差距(DIFFERENCE)
    select MAX(salary)-MIN(salary) DIFFERENCE from employees;
    
    

    拓展:
    count()的效率

    SHOW ENGINES; --显示所有储存引擎

    select count(1) from employees;
    select count(*) from employees;

    效率:

    MYISAM储存引擎下,count()的效率高
    INNODB储存引擎下,count(
    )和count(1)的效率差不多

    作业:

    --1.查询部门编号为90的员工个数
    select department_id,count(1) from employees where department_id = 90 ORDER BY department_id;
    
    --2.领导编号>102的每个领导手下的最低工资大于5000的领导编号和最低工资
    select manager_id,min(salary) from employees where manager_id>102 GROUP BY manager_id HAVING MIN(salary)>5000;
    
    --3.选择工资不在8000到17000的员工的姓名和工资,按工资降序
    select last_name,salary from employees where salary not BETWEEN 8000 and 17000 ORDER BY salary desc;
    
    --4.选择具有各个job_id的员工人数
    select job_id,count(1) from employees group by job_id;
    
    --5.查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没有管理者的员工不计算在内
    select manager_id,min(salary) from employees where manager_id is not null group by manager_id having min(salary)>=6000;
    
    --6.查询各job_id的员工工资的最大值,最小值,平均值,总和,并按job_id升序
    select job_id,max(salary),min(salary),avg(salary),sum(salary) from employees group by job_id order by job_id ;
    
    展开全文
  • sql中聚合函数和分组函数 SQL has many cool features and aggregate functions are definitely one of these features, actually functions. While they are not specific to SQL, they are used often. They are...

    sql中聚合函数和分组函数

    SQL has many cool features and aggregate functions are definitely one of these features, actually functions. While they are not specific to SQL, they are used often. They are part of the SELECT statement, and this allows us to have all benefits of SELECT (joining tables, filtering only rows and columns we need), combined with the power of these functions.

    SQL具有许多很酷的功能,聚合函数绝对是这些功能之一,实际上是函数。 尽管它们不特定于SQL,但经常使用。 它们是SELECT语句的一部分,这使我们能够充分利用SELECT的所有好处(联接表,仅过滤所需的行和列),并结合这些功能的强大功能。

    该模型 (The Model)

    Before we start talking about aggregate functions, we’ll shortly comment on the data model we’ll be using.

    在开始讨论聚合函数之前,我们将简短地评论将要使用的数据模型。

    aggregate functions - the data model we'll use

    This is the same model we’ve been using in a few past articles. I won’t go into details, but rather mention that all 6 tables in the model contain data. Some of the records in tables are referenced in others, while some are not. E.g. we have countries without any related city, and we have cities without any related customers. We’ll comment on this in the article where it will be important.

    这与我们在过去的几篇文章中一直使用的模型相同。 我不会详细介绍,而是要提到模型中的所有6个表都包含数据。 表中的某些记录在其他表中被引用,而另一些则没有。 例如,我们有没有任何相关城市的国家,而我们有没有任何相关客户的城市。 我们将在文章中对此进行评论,这将是重要的。

    最简单的集合函数 (The Simplest Aggregate Function)

    We’ll, of course, start with the simplest possible aggregate function. But, before we do it, let’s check the contents of the two tables we’ll use throughout this article. There are tables country and city. We’ll use the following statements:

    当然,我们将从最简单的聚合函数开始。 但是,在进行此操作之前,让我们检查一下我们将在本文中使用的两个表的内容。 有桌子国家城市 。 我们将使用以下语句:

    SELECT *
    FROM country;
     
    SELECT *
    FROM city;
    

    You can see the result in the picture below:

    您可以在下图中看到结果:

    check contents of the table

    This is nothing new and unexpected. We’ve just listed everything that is in our tables ( “*” in the query will result in returning all columns/attributes, while the lack of any condition/WHERE part of the query will result in returning all rows).

    这并不是什么新鲜事和意外的事情。 我们刚刚列出了表中的所有内容(查询中的“ *”将导致返回所有列/属性,而查询中缺少任何条件/ WHERE部分将导致返回所有行)。

    The only thing I would like to point out is that the country table has 7 rows and that the city table has 6 rows. Now, let’s examine the following queries and their result:

    我唯一要指出的是, 国家表有7行, 城市表有6行。 现在,让我们检查以下查询及其结果:

    COUNT number of rows from the tables

    We can notice that for each query we got one row as a result, and the number returned represents the number of rows in each of these two tables. That’s what aggregate function COUNT does. It takes what the query without COUNT would return, and then returns the number of rows in that result. One more important thing you should be aware of is that only COUNT can be used with “*”. All other functions shall require an attribute (or formula) between brackets. We’ll see that later.

    我们可以注意到,对于每个查询,结果只有一行,返回的数字表示这两个表中的每一个的行数。 这就是COUNT的汇总函数。 它使用没有COUNT的查询将返回的内容,然后返回该结果中的行数。 您应该意识到的另一件事是,只有COUNT可以与“ *”一起使用。 所有其他功能应在方括号之间要求一个属性(或公式)。 我们稍后会看到。

    汇总函数和联接 (Aggregate Functions & JOINs)

    Now let’s try two more things. First, we’ll test how COUNT works when we’re joining tables. To do that, we’ll use the following queries:

    现在让我们再尝试两件事。 首先,我们将测试联接表时COUNT的工作方式。 为此,我们将使用以下查询:

    SELECT *
    FROM country
    INNER JOIN city ON city.country_id =  country.id;
        
    SELECT COUNT(*) AS number_of_rows
    FROM country
    INNER JOIN city ON city.country_id =  country.id;
    

    check the contents of the table and COUNT rows

    While the first query is not needed, I’ve used it to show what it will return. I did that because this is what the second query counts. When two tables are joined, you can think of that result as of some intermediate table that can be used as any other tables (e.g. for calculations using aggregate functions, in subqueries).

    虽然不需要第一个查询,但我已使用它来显示返回的内容。 我这样做是因为第二个查询很重要。 当两个表联接在一起时,您可以认为该结果来自可以用作任何其他表的中间表(例如,用于子查询中使用聚合函数的计算)。

    • Tip: Whenever you’re writing a complex query, you can check what would parts return and that way you’ll be sure your query is working and will be working, as expected.提示:每当编写复杂的查询时,您都可以检查返回哪些部分,这样就可以确保查询能够正常工作,并且可以正常工作。

    Also, we should notice, one more thing. We’ve used INNER JOIN while joining tables country and city. This will eliminate countries without any cities from the result (you can check why here). Now we’ll run 3 more queries where tables are joined using LEFT JOIN:

    另外,我们应该注意到,还有一件事。 我们在连接国家城市餐桌时使用了INNER JOIN 。 这将消除结果中没有任何城市的国家(您可以在此处查看原因)。 现在,我们将再运行3个查询,其中使用LEFT JOIN联接表:

    SELECT *
    FROM country
    LEFT JOIN city ON city.country_id =  country.id;
        
    SELECT COUNT(*) AS number_of_rows
    FROM country
    LEFT JOIN city ON city.country_id =  country.id;
        
    SELECT COUNT(country.country_name) AS countries, COUNT(city.city_name) AS cities
    FROM country
    LEFT JOIN city ON city.country_id =  country.id;
    

    testing the contents of tables and performing simple COUNTs

    We can notice a few things:

    我们可以注意到一些事情:

    • st query returned 8 rows. These are the same 6 rows as in a query using 第一个查询返回8行。 这些与使用INNER JOIN and 2 more rows for countries that don’t have any related city (Russia & Spain) INNER JOIN进行的查询中的第6行相同,对于没有相关城市的国家(俄罗斯和西班牙),则有2行以上
    • nd query counts the number of rows 1第二个查询计算st query returns, so this number is 8 第一个查询返回的行数,因此该数字为8
    • rd query has two important things to comment on. The first one is that we’ve used aggregate function (第三查询有两点要评论。 第一个是我们在查询的COUNT), twice in the SELECT部分中使用了聚合函数( SELECT part of the query. This will usually be the case because you’re interested in more details about the group you want to analyze (number of records, average values, etc.). The second important thing is that these 2 counts used column names instead of “*” and they returned different values. That happens because COUNT )两次。 通常是这种情况,因为您对要分析的组的更多详细信息感兴趣(记录数,平均值等)。 第二个重要的事情是这2个计数使用的是列名而不是“ *”,并且它们返回不同的值。 发生这种情况是因为COUNT was created that way. If you put column names between brackets COUNT是用这种方式创建的。 如果将列名称放在方括号之间,则COUNT will count how many values are there (not including NULL values). All our records had value for country_name, so the 1COUNT将计算其中有多少值(不包括NULL值)。 我们的所有记录有用于COUNTRY_NAME值,所以第st COUNT returned 8. On the other hand, city_name wasn’t defined 2 times (=NULL), so the 21个计数恢复8.在另一方面,没有定义CITY_NAME 2倍(= NULL),所以第2 nd COUNT returned 6 (8-2=6) 返回COUNT 6(8-2 = 6)
    • Note: This stands for other aggregate functions as well. If they run into NULL values, they will simply ignore them and calculate as they don’t exist.
    • 注意:这也代表其他聚合函数。 如果它们遇到NULL值,它们将简单地忽略它们并进行计算,因为它们不存在。

    SQL聚合函数 (SQL Aggregate Functions)

    Now it’s time that we mention all T-SQL aggregate functions. The most commonly used are:

    现在是时候提到所有T-SQL聚合函数了。 最常用的是:

    • COUNT – counts the number of elements in the group defined COUNT –计算定义的组中元素的数量
    • SUM – calculates the sum of the given attribute/expression in the group defined SUM –计算给定组中给定属性/表达式的总和
    • AVG – calculates the average value of the given attribute/expression in the group defined AVG –计算定义组中给定属性/表达式的平均值
    • MIN – finds the minimum in the group defined MIN –在定义的组中找到最小值
    • MAX – finds the maximum in the group defined MAX –在定义的组中找到最大值

    These 5 are most commonly used and they are standardized so you’ll need them not only in SQL Server but also in other DBMSs. The remaining aggregate functions are:

    这5个是最常用的,并且已经标准化,因此您不仅在SQL Server中而且在其他DBMS中都需要它们。 其余的聚合函数是:

    • APPROX_COUNT_DISTINCT APPROX_COUNT_DISTINCT
    • CHECKSUM_AGG CHECKSUM_AGG
    • COUNT_BIG COUNT_BIG
    • GROUPING 分组
    • GROUPING_ID GROUPING_ID
    • STDEV STDEV
    • STDEVP STDEVP
    • STRING_AGG STRING_AGG
    • VAR VAR
    • VARPB VARPB

    While all aggregate functions could be used without the GROUP BY clause, the whole point is to use the GROUP BY clause. That clause serves as the place where you’ll define the condition on how to create a group. When the group is created, you’ll calculate aggregated values.

    尽管可以在没有GROUP BY子句的情况下使用所有聚合函数,但重点是要使用GROUP BY子句。 该子句用作您定义如何创建组的条件的地方。 创建组后,您将计算汇总值。

    • Example: Imagine that you have a list of professional athletes and you know which sport each one of them plays. You could ask yourself something like – From my list, return the minimal, maximal and average height of players, grouped by the sport they play. The result would be, of course, MIN, MAX, and AVG height for groups – “football players”, “basketball players”, etc.
    • 示例: 假设您有一个职业运动员列表,并且知道他们每个人都从事哪种运动。 您可能会问自己类似的问题–从我的列表中,返回球员的最小身高,最大身高和平均身高,并根据他们参加的运动进行分组。 当然,结果将是“足球运动员”,“篮球运动员”等组的MIN,MAX和AVG高度。

    集合函数–示例 (Aggregate Functions – Examples)

    Now, let’s take a look at how these functions work on a single table. They are rarely used this way, but it’s good to see it, at least for educational purposes:

    现在,让我们看一下这些功能如何在单个表上工作。 它们很少以这种方式使用,但是很高兴看到它,至少出于教育目的:

    count values on the single table

    The query returned aggregated value for all cities. While these values don’t have any practical use, this shows the power of aggregate functions.

    该查询返回所有城市的汇总值。 尽管这些值没有实际用途,但这显示了聚合函数的功能。

    Now we’ll do something smarter. We’ll use these functions in a way much closer than what you could expect in real-life situations:

    现在,我们将做一些更聪明的事情。 我们将以比您在现实生活中所期望的方式更接近的方式使用这些功能:

    aggregate functions examples using inner join

    This is a much “smarter” query than the previous one. It returned the list of all countries, with a number of cities in them, as well as SUM, AVG, MIN, and MAX of their lat values.

    与上一个查询相比,这是一个“更智能”的查询。 它返回了所有国家/地区的列表,其中包括许多城市,以及其拉特值的SUM,AVG,MIN和MAX。

    Please notice that we’ve used the GROUP BY clause. By placing country.id and country. country_name, we’ve defined a group. All cities belonging to the same country will be in the same group. After the group is created, aggregated values are calculated.

    请注意,我们已经使用了GROUP BY子句。 通过放置country.idcountry。 country_name ,我们已经定义了一个组。 属于同一国家的所有城市将在同一组中。 创建组后,将计算汇总值。

    • Note: The GROUP BY clause must contain all attributes that are outside aggregate functions (in our case that was country.country_name). You could also include other attributes. We’ve included country.id because we’re sure it uniquely defines each country.
    • 注意: GROUP BY子句必须包含聚合函数之外的所有属性(在本例中为country.country_name)。 您还可以包括其他属性。 我们加入了country.id,因为我们确定它唯一地定义了每个国家。

    结论 (Conclusion)

    Aggregate functions are a very powerful tool in databases. They serve the same purpose as their equivalents in MS Excel, but the magic is that you can query data and apply functions in the same statement. Today, we’ve seen basic examples. Later in this series, we’ll use them to solve more complicated problems (with more complicated queries), so stay tuned.

    聚合函数是数据库中非常强大的工具。 它们的作用与其在MS Excel中的等效作用相同,但其神奇之处在于,您可以查询数据并在同一语句中应用函数。 今天,我们已经看到了基本示例。 在本系列的后面部分,我们将使用它们来解决更复杂的问题(具有更复杂的查询),请继续关注。

    目录 (Table of contents)

    Learn SQL: CREATE DATABASE & CREATE TABLE Operations
    Learn SQL: INSERT INTO TABLE
    Learn SQL: Primary Key
    Learn SQL: Foreign Key
    Learn SQL: SELECT statement
    Learn SQL: INNER JOIN vs LEFT JOIN
    Learn SQL: SQL Scripts
    Learn SQL: Types of relations
    Learn SQL: Join multiple tables
    Learn SQL: Aggregate Functions
    Learn SQL: How to Write a Complex SELECT Query
    Learn SQL: The INFORMATION_SCHEMA Database
    Learn SQL: SQL Data Types
    Learn SQL: Set Theory
    Learn SQL: User-Defined Functions
    Learn SQL: User-Defined Stored Procedures
    Learn SQL: SQL Views
    Learn SQL: SQL Triggers
    Learn SQL: Practice SQL Queries
    Learn SQL: SQL Query examples
    Learn SQL: Create a report manually using SQL queries
    Learn SQL: SQL Server date and time functions
    Learn SQL: Create SQL Server reports using date and time functions
    Learn SQL: SQL Server Pivot Tables
    Learn SQL: SQL Server export to Excel
    Learn SQL: Intro to SQL Server loops
    Learn SQL: SQL Server Cursors
    Learn SQL: SQL Best Practices for Deleting and Updating data
    Learn SQL: Naming Conventions
    学习SQL:CREATE DATABASE&CREATE TABLE操作
    学习SQL:插入表
    学习SQL:主键
    学习SQL:外键
    学习SQL:SELECT语句
    学习SQL:INNER JOIN与LEFT JOIN
    学习SQL:SQL脚本
    学习SQL:关系类型
    学习SQL:联接多个表
    学习SQL:聚合函数
    学习SQL:如何编写复杂的SELECT查询
    学习SQL:INFORMATION_SCHEMA数据库
    学习SQL:SQL数据类型
    学习SQL:集合论
    学习SQL:用户定义的函数
    学习SQL:用户定义的存储过程
    学习SQL:SQL视图
    学习SQL:SQL触发器
    学习SQL:练习SQL查询
    学习SQL:SQL查询示例
    学习SQL:使用SQL查询手动创建报告
    学习SQL:SQL Server日期和时间函数
    学习SQL:使用日期和时间函数创建SQL Server报表
    学习SQL:SQL Server数据透视表
    学习SQL:将SQL Server导出到Excel
    学习SQL:SQL Server循环简介
    学习SQL:SQL Server游标
    学习SQL:删除和更新数据SQL最佳实践
    学习SQL:命名约定

    翻译自: https://www.sqlshack.com/learn-sql-aggregate-functions/

    sql中聚合函数和分组函数

    展开全文
  • MySQL_MySQL分组函数

    2019-09-21 10:50:43
    测试使用表结构和内容。创建表结构内容参考:... 表内容如下: 分组函数概述 ...分组函数概述 ... 分组函数用于统计使用,又被称之为聚合函数或者是统计函数或者是组函数。 2.分类[常见]: sum():进行求和 avg():...

    测试使用表结构和内容。创建表结构内容参考:https://blog.csdn.net/u013185175/article/details/101016274中开头内容。

    表内容如下:

    分组函数概述

    分组函数概述
    
    1.功能:
          分组函数用于统计使用,又被称之为聚合函数或者是统计函数或者是组函数。
    2.分类[常见]:
          sum():进行求和
          avg(): 进行求平均
          max(): 获取最大值
          min(): 获取最小值
        count():计算个数
    
    3.以上分组函数都忽略null值。
    
    4.count函数的单独介绍
      count函数一般是使用count(*)作为统计行数的使用。
    
    5.和分组函数一同查询单的字段要求是group by 之后的。
    

    基本使用测试

    1.sum求和操作,如:统计图书的销售总量。

    2.avg求平均操作,如统计所有图书价格的均值。

    3.min,miax最小、最大值操作,如获取价格的最大、最小值。

    4.count计数功能操作,如获取该表的记录总数。

    5.组合使用,使用上述基本功能进行组合查询。

    分组函数与distinct的搭配使用

    distinct:能够去除值重复的内容

    1.sum()和distinct基本搭配使用

    2.count()和distinct基本搭配使用

    count函数的详细使用

    1.使用count函数实现记录数量的统计

    注:count(1).其实就是给该表新加一个字段名称为1,然后该列的值为1。通过统计1的个数来实现记录数量的统计。

    上述三种统计,在INNODB中count(*)效率最高,在MYISAM中count(*)和count(1)的效率接近,比count(字段)效率高。

     

    分组函数的使用注意事项

    和count函数进行一同查询的字段本身有限制,如:以下的查询是没有任何意义的。

    展开全文
  • SQL教程——常见函数之分组函数

    千次阅读 2020-11-30 15:07:02
    摘要:本文主要介绍SQL的常见函数中的分组函数 分组函数 功能:用作统计使用,又称为聚合函数或统计函数或组函数 分类:sum求和、avg平均值、max最大值、min最小值、 count计算个数 特点: 1、sum、avg一般...
  • oracle分组函数

    2015-07-31 20:56:32
    oracle的分组函数的概述,以及详细的介绍
  • 分组函数笔记

    2015-08-02 14:04:19
    个人笔记,oracle分组函数笔记。仅供参考,有错误也不要找我
  • Oracle数据库使用分组函数来对数据进行聚集
  • 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...
  • Oracle分组函数

    千次阅读 2018-06-05 08:34:24
    1.分组函数: 多行函数\聚合函数:就是对一组中的数据进行处理获取一个结果2. max min sum avg count 自动忽略null值 select count(comm) from emp; 43.注意: sum() avg() 只能对数值操作 max() min() 只对 日期和...
  • ORACLE分组函数

    千次阅读 2019-04-26 20:10:17
    ORACLE分组函数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:Oracle sql * plus PLSQL Developer 作者:叶 撰写时间:2019年01月01日 ~~~~~~~~~~~~~~~~...
  • MySQL之分组函数

    2019-10-19 11:29:44
    分组函数 分组函数是对表中的一组记录进行操作,每组返回一个结果。 分组函数一共5个 COUNT 求总数 SUM  求总和 AVG 求平均数 MAX 求最大数 MIN 求最小数 分组函数的特点 分组函数自动忽略NULL,例如下面的...
  • 数据库中分组函数汇总

    千次阅读 2019-05-24 18:42:27
    分组函数作用于一组函数而返回一个值。 1. 分组函数的类型 avg 平均值 count 统计值 max 最大值 min 最小值 sum 合计 stddev 标准差 variance 方差 后两个了解 语法 count()和count(expr)的区别 前者返回满足...
  • Oracle--多行函数(分组函数)详解

    千次阅读 2019-09-10 17:15:39
    什么是多行函数(分组函数)? 分组函数作用于一组数据,并对一组数据返回一个值。 也叫:组函数,分组函数 组函数会忽略空值:NVL函数使分组函数无法忽略空值\color{red}{组函数会忽略空值:NVL函数使分组函数...
  • 单组分组函数

    千次阅读 2020-06-17 15:36:40
    单组分组函数
  • Oracle报错:不是单组分组函数解决

    千次阅读 2019-06-10 09:25:09
    Oracle报错:不是单组分组函数解决 报错:不是单组分组函数 实例:select deptno,count(empno) from emp; 报错:不是单组分组函数 原因: 1, 如果程序中使用了分组函数,则有两种情况可以使用: 程序中存在group by...
  • ORA-00937: 不是单组分组函数

    千次阅读 2019-08-12 10:37:28
    修改sql语句的时候遇到了这个错误 ORA-00937: 不是单组分组函数 eg:查询人员表中的name、age 以及最大age; select name , age, max(age) from Person; 此时将会报错 ORA-00937: 不是单组分组函数— 解释意思为: ...
  • SQL中的分组函数的使用

    万次阅读 2018-06-08 23:32:48
    什么是分组函数分组函数是作用在一组数据中,返回一个结果的函数,包括组函数:AVG,COUNT,MAX,MIN,SUM; 初始数据 假设有t_function表初始数据如下: 组函数 SQL中的组函数包括: AVG() 求平均值 ...
  • MySQL学习笔记(四)——分组函数,分组查询,连接查询 作者:就叫易易好了 日期:2020/11/18 一、分组函数 功能:用作统计使用,又称为聚合函数或统计函数 分类: sum函数 avg函数 max函数 min函数 count函数 ...
  • 组函数(聚合函数),分组函数

    千次阅读 2017-12-12 00:15:26
    函数(聚合函数):  1.avg 求平均 (只能是number 类型)  2.sum 求和 (只能是number 类型)  3.max 最大值(可以使是number,varchar,Date 类型)  4.min 最小值 (可以使是number,varchar,Date ...
  • oracle笔记分组函数

    2018-09-14 06:26:33
    oracle笔记分组函数,涉及组函数案例,在使用组函数的过程中注意事项,有具体的案例说明!
  • MySQL学习-排序与分组函数

    千次阅读 2020-12-26 10:30:13
    分组函数 分组函数? count 计数 sum 求和 avg 平均值 max 最大值 min 最小值 记住:所有的分组函数都是对“某一组”数据进行操作的。 找出工资总和? select sum(sal) from emp; 找出最高工资? select max(sal) ...
  • MySQL分组函数与聚合函数

    千次阅读 2019-09-19 16:05:06
    ——GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组,相同属性的数据为一个组。通常,在每组中通过聚合函数来可以计算组中最大,最小等。 ——如果group by带有having,则只有满足having后面的...
  • 常用 SQL语句(分组函数)

    千次阅读 2020-05-04 18:32:02
    1.分组函数 分局函数一共有5种,所有的分组的函数都是对一组数据进行操作的 count(计数) avg(平均值) sum(求和) max(最大值) min(最小值) 示列代码 select count(需要求条数的字段值) from map; 注意:count会...
  • plsql报错 ORA-00937:不是单组分组函数
  • Oracle SQL提供了用于执行特定操作的专用函数。这些函数大大增强了SQL语言的功能。 SQL函数的分类: 单行函数 对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,可以出现在 SELECT 子句中和 ...
  • 主要介绍了django 中的聚合函数,分组函数,F 查询,Q查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 331,780
精华内容 132,712
关键字:

分组函数