MySQL SQL GROUP BY是如何选择哪一条数据留下的

发布网友 发布时间:2022-04-20 15:25

我来回答

7个回答

热心网友 时间:2022-04-10 19:09

根据你group by 后面的字段 把这个字段相同的全部合并 ,
因为别的字段也要合并 但是数据却又不相同 所以其余的字段就不能直接查询了,一般放在函数里
如 一个表有A B C D 4个字段
select A,max(B),avg(C),min(D) from 表 group by A
这样会把 表 字段 A 相同的合并
字段B 取最大值
字段C 取平均值
字段D 取最小值

热心网友 时间:2022-04-10 20:27

留下的数据是:
如 group by a 那留下的是 order by a 后的第一条;
所以 如果想要留下一定的数据,请先 嵌套一层 查询,如
select * from (select * from table_a order by b ) v group by a

热心网友 时间:2022-04-10 22:02

默认排序下最前面那一条数据。mysql查询语句是先执行group by再执行order by的。

热心网友 时间:2022-04-10 23:53

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。

SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

热心网友 时间:2022-04-11 02:01

  GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。

SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

热心网友 时间:2022-04-11 04:26

在日常查询中,索引或其他数据查找的方法可能不是查询执行中最高昂的部分,例如:MySQL GROUP BY 可能负责查询执行时间 90% 还多。MySQL 执行 GROUP BY 时的主要复杂性是计算 GROUP BY 语句中的聚合函数。UDF 聚合函数是一个接一个地获得构成单个组的所有值。这样,它可以在移动到另一个组之前计算单个组的聚合函数值。当然,问题在于,在大多数情况下,源数据值不会被分组。来自各种组的值在处理期间彼此跟随。因此,我们需要一个特殊的步骤。


处理 MySQL GROUP BY让我们看看之前看过的同一张table:    mysql> show create table tbl G    *************************** 1. row ***************************          Table: tbl    Create Table: CREATE TABLE `tbl` (     `id` int(11) NOT NULL AUTO_INCREMENT,     `k` int(11) NOT NULL DEFAULT '0',     `g` int(10) unsigned NOT NULL,     PRIMARY KEY (`id`),     KEY `k` (`k`)    ) ENGINE=InnoDB AUTO_INCREMENT=2340933 DEFAULT CHARSET=latin1    1 row in set (0.00 sec)

并且以不同方式执行相同的 GROUP BY 语句:

1、MySQL中 的 Index Ordered GROUP BY

热心网友 时间:2022-04-11 07:07

你给一个 你的 sql 语句

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com