首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

问一个关于group by 的有关问题

2012-04-01 
问一个关于group by 的问题有字段ABselect a,b from 表 group by a这时候b的值如何确定的?还有 select a f

问一个关于group by 的问题
有字段 A B 

select a,b from 表 group by a  

这时候b的值如何确定的?



还有 select a from 表 group by a;
和 select distinct(a) from 表;
哪个效率高?

[解决办法]

引用select a,b from 表 group by a

这时候b的值如何确定的?

[解决办法]
select a,b from 表 group by a

这时候b的值如何确定的?

1、不是标准r的SQL语句;
2、随机选择B

还有 select a from 表 group by a;
和 select distinct(a) from 表;
哪个效率高?

如果数据量比较大,建议用distinct,速度快一些
[解决办法]
探讨
有字段 A B

select a,b from 表 group by a

这时候b的值如何确定的?



还有 select a from 表 group by a;
和 select distinct(a) from 表;
哪个效率高?

[解决办法]
与索引有关,在GROUP BY的字段上建立索引,GROUP BY速度快一些,反之,distinct快一些
[解决办法]
mysql在优化group by 和 distinct时,用的是同样的方法:临时表法和文件排序分组法。
优化的办法都是在目标列上加索引。

在select * from a where id not in(select distinct(id) from b);这样的查询中,distinct会使用“早期终结”优化,只要发现一个符合要求的值后,立刻返回,查询下一个值。
[解决办法]
引用两个问题我都试过,第一个测试结果B总是id(主键)最小的那个 但是不知道是否永远都是这个结果

[解决办法]
引用第二个测试 我以前对几百万的数据试过 group by 和distinct 速度差不多,但是哪个更快一点 我忘记了...

[解决办法]
有字段 A B

select a,b from 表 group by a

这时候b的值如何确定的?
随便一个



还有 select a from 表 group by a;
和 select distinct(a) from 表;
哪个效率高?
一样低

热点排行