`
DavyJones2010
  • 浏览: 151923 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL: Group By

 
阅读更多

1. Group By

    1) GroupBy Is usually used with aggragation function(statistic function). If not, group by is pointless.

    2) Five aggragation function:

        1) max

        2) min

        3) sum

        4) avg

        5) count

    Eg.

# fetch the most expensive goods price
# knowing the process of fetching max
select max(shop_price) from goods;
select max(market_price - shop_price) from goods;

# select goods_id, goods_name, max(shop_price) from goods;
# the above will not work correctly
# this is a syntax error in Oracle/SQLServer

# fetch the most expensive goods price in each category
select cat_id, max(shop_price) from goods group by cat_id;
# cat_id makes sense as we are grouping by cat_id;

# fetch the max goods_id
select max(goods_id) from goods;

# fetch the min goods_id
select min(goods_id) from goods;

# fetch the cheapest shop_price
select min(shop_price) from goods;

# count the sum of goods_number
select sum(goods_number) from goods;

# count the sum of goods_number in each category
select cat_id, sum(goods_number) from goods group by cat_id;

# calculate the average shop_price
select avg(shop_price) from goods;

# count the variety of goods (different line of goods)
# count the registered user today
# is also applicable in paging: calculate the number of different lines in order to paging
select count(goods_id) from goods;
select count(*) from goods;

# count the variety of goods in each cat
select cat_id, count(*) from goods group by cat_id;

     Comment:

        1) Regard column name as variable:

                 select cat_id, count(*) from goods group by cat_id;

                 cat_id can be seen as variable.

                 variable can use operator to calculating.

    Eg

# Regard column name as variable

# Fetch the difference between shop_price and market_price
select (market_price - shop_price) from goods;

# Fetch the total money in each category
select cat_id, sum(goods_num * shop_price) from goods group by cat_id;

# Alias for a certain column
select cat_id, sum(goods_num * shop_price) as cash_repository from goods group by cat_id;

# How should we represent the total money?
select sum(goods_num * shop_price) from goods;
分享到:
评论

相关推荐

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    MySQL数据库中group by语句与update语句的用法研究.pdf

    MySQL 数据库中 group by 语句与 update 语句的用法研究 本论文对 MySQL 数据库中的 group by 语句和 update 语句进行了深入研究,讨论了这些语句在数据库查询和修改中的应用,并给出了具体的解决方案。 一、MySQL...

    MySQL Group Replication 详细搭建部署过程

    MySQL Group Replication 详细搭建部署过程 MySQL Group Replication 是一种基于组的复制技术,用于容错系统中。它由多个服务器(节点)组成,每个节点都可以独立执行事务,而读写事务则会在于 group 内的其他节点...

    深入解析mysql中order by与group by的顺序问题

    mysql 中order by 与group by的顺序是:selectfromwheregroup byorder by注意:group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group ...

    Mysql利用group by分组排序

    我们可以利用MySQL中的group by的特性。 MySQL的group by与Oracle有所不同,查询得字段可以不用写聚合函数,查询结果取得是每一组的第一行记录。 利用上面的特点,可以利用mysql实现一种独特的排序; 首先先按某个...

    深度分析mysql GROUP BY 与 ORDER BY

    本文就和大家一起深入研究下mysql中group by与order by.下面是我模拟我的内容表   我现在需要取出每个分类中最新的内容 select * from test group by category_id order by `date` 结果如下   明显。这不是我想...

    MySQL优化GROUP BY方案

    MySQL中的GROUP BY语句用于对数据进行分组并计算每个组的聚合函数,如COUNT(), SUM(), AVG(), MAX(), MIN()等。在处理大数据量时,优化GROUP BY语句至关重要,因为它直接影响到查询性能。本篇文章将深入探讨MySQL...

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    数据分组的艺术:深入探索MySQL中的GROUP BY

    MySQL作为广泛使用的数据库管理系统,提供了强大的数据分组功能,其中GROUP BY子句是实现这一功能的关键。本文将深入探讨如何使用GROUP BY进行数据分组,包括其基本概念、语法结构、应用场景以及最佳实践。 GROUP BY...

    mysql group by用法

    MySQL中的`GROUP BY`语句是用于对数据库中的数据进行分组,以便可以对每个分组执行聚合操作,如计算总和、平均值、最大值、最小值等。这个功能在数据分析和报表生成中非常常见,因为它允许我们按特定字段对数据进行...

    mysql获取group by总记录行数的方法

    在MySQL数据库中,当执行`GROUP BY`语句时,通常是为了对数据进行分组并进行聚合计算,如计算每个组的总数、平均值等。然而,标准的`GROUP BY`查询并不直接提供每个组的行数,而是返回每个组的一行数据。如果需要...

    mysql获取group by的总记录行数另类方法

    mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数。 mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: 代码如下 SELECT COUNT(*) from `table` ...

    处理group by 查询速度慢的问题.docx

    ### 处理GROUP BY 查询速度慢的问题 在实际项目中,由于数据表的记录数量庞大,经常遇到查询速度缓慢的问题。本文将详细记录一次针对GROUP BY查询效率低下的排查及优化过程,希望能够对读者有所帮助。 #### 问题...

    MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描)

    MySQL提供了几种优化策略,其中两种是利用索引来加速GROUP BY:松散索引扫描(Loose Index Scan)和紧凑索引扫描( Tight Index Scan)。 **松散索引扫描(Loose Index Scan)** 松散索引扫描适用于GROUP BY条件是...

    处理group by 查询速度太慢的问题 数据量大.doc

    优化 Group By 查询速度的实践经验 在实际项目中,遇到了表数据量大导致查询速度很慢的问题。通过记录和优化过程,总结出一些有价值的经验,希望能够帮助读者解决类似的问题。 知识点1:Group By 查询的索引设置 ...

    MySQL:常用基本SQL语句小结

    - `GROUP BY`:分组。 - `HAVING`:分组后的条件过滤。 - `LIMIT`:限制返回的行数。 2. 联合查询: - `UNION`:合并两个或更多`SELECT`语句的结果集。 - `JOIN`:连接两个或更多表,例如`INNER JOIN`, `LEFT JOIN`...

    mysql不支持group by的解决方法小结

    MySQL中的`GROUP BY`语句用于对数据进行分组,并且通常与聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)一起使用,以计算每个分组的汇总信息。然而,在MySQL 5.7.x及更高版本中,默认启用了一个名为`ONLY_FULL_...

    MySQL无GROUP BY直接HAVING返回空的问题分析

    MySQL在使用HAVING子句时规定,HAVING必须配合GROUP BY子句使用,因此在没有GROUP BY子句的情况下使用HAVING子句是不符合SQL标准的。但MySQL为了灵活处理某些特殊场景,会自动将没有GROUP BY子句的SQL语句重写,增加...

    Mysql升级到5.7后遇到的group by查询问题解决

    MySQL 5.7 版本升级后,用户可能会遇到与`GROUP BY`查询相关的兼容性问题,这主要是由于新版本中默认启用的`ONLY_FULL_GROUP_BY` SQL模式引起的。此模式要求在`GROUP BY`子句中列出所有的非聚合列,以确保数据的正确...

Global site tag (gtag.js) - Google Analytics