位置: 编程技术 - 正文

MySQL中distinct与group by语句的一些比较及用法讲解

编辑:rootadmin

推荐整理分享MySQL中distinct与group by语句的一些比较及用法讲解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC)。 DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是紧凑索引扫描来实现。 那DISTINCT 和GROUP BY哪个效率更高? DISTINCT操作只需要找出所有不同的值就可以了。而GROUP BY操作还要为其他聚集函数进行准备工作。从这一点上将,GROUP BY操作做的工作应该比DISTINCT所做的工作要多一些。 但实际上,GROUP BY 效率会更高点,为什么呢?对于DISTINCT操作,它会读取了所有记录,而GROUP BY需要读取的记录数量与分组的组数量一样多,也就是说比实际存在的记录数目要少很多。

下面来看MySQL中distinct及group by的一些用法分享。

1.测试一

用distinct过滤掉两列都相同的记录

返回

2.测试二将表student的数据改为如下:

返回如下,说明distinct后面有多于一列的字段时,只有每列的值完全相同才过滤

3.测试三

group by按两列同时分组

group by按两列同时分组,同时在后面加上having的条件

MySQL中distinct与group by语句的一些比较及用法讲解

返回c 2

4.测试四关于group by后面limit的测试

经过以上两个测试可以看出,如果sql语句中含有limit,limit是对用group by进行分组,并进行相关计算以后的limit操作,而不是对limit后面的指定记录数进行分组,从n那一列的数据每一行的值都大于就可以看出来。

5.测试五用以下的两种形式的distinct均可以得到相同的记录数,写法不一样,结果是一样的。

6.测试六field singername is string,max(singername),如果singername有些列为空,有些列不为空,则max(singername)取非空的值,如果一列为zxx,一列为lady,则取zxx,按字母顺利取的。

7.Sql语句中where,group by,order by及limit的顺序

8.关于group by与count的问题如果sql语句中含有group by,则最好不要将count sql转换为select count(*) from xxx,否则select与from之间的字段很有可能是后面要使用的,例如

mysql 数据库死锁原因及解决办法 死锁(Deadlock)所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去

mysql数据库锁的产生原因及解决办法 数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对

批量 kill mysql 中运行时间长的sql KILL语法KILL[CONNECTION|QUERY]thread_id每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOWPROCESSLIST语句查看哪些线程正在运行,并使用KILLthread_id语

标签: MySQL中distinct与group by语句的一些比较及用法讲解

本文链接地址:https://www.jiuchutong.com/biancheng/319726.html 转载请保留说明!

上一篇:MySQL中distinct语句的基本原理及其与group by的比较

下一篇:mysql 数据库死锁原因及解决办法(mysql 死锁处理)

  • 混合销售行为如何缴纳增值税税率
  • 产权转移书据印花税政策
  • 金税三期的内容是什么
  • 个税申报怎么办
  • 车船税不交有什么影响 三大影响要注意
  • 餐饮业厨房设备专票可以抵税吗
  • 虚开普票的立案标准
  • 发票开成了下属机构的可以报销吗
  • 小规模没有成本票企业所得税怎么办呀
  • 期末库存农产品进项转出如何算
  • 房屋及建筑物属于什么会计要素
  • 别墅一般送车库吗
  • 房地产开发企业增值税税率
  • 冲销暂估材料怎么做账
  • 公益机构可以收费吗
  • 厂家返利计提会计分录
  • 环保公司开具发票怎么开
  • 退款给客户怎么记分录
  • 加税点开专票合适吗
  • 全额拨款事业单位工资都一样吗
  • 股权转让分期收款怎么企业所得税
  • 印花税计提会计分录
  • 离婚房屋权属变动怎么办
  • 公允价值变动损益属于损益类的
  • 长期股权投资权益法初始计量
  • 开票金额开多了,对公司有影响吗
  • 非流动资产基金对应哪个会计科目
  • 笔记本电池保养注意事项
  • 原材料废料怎么做账
  • 分公司开业开场白
  • 进货开了发票也写了购销合同要交印花税吗
  • 跨区域预缴增值税是当月还是次月
  • Linux | 将SpringBoot+Vue项目部署到服务器上
  • vue-cli2.0
  • 什么叫相机标定
  • php使用ajax
  • 销售退货和销售折让的区别
  • 公办学校的会计
  • 合作社计提工资
  • 研发费用加计扣除75%还是100%
  • 无法支付其他应用怎么办
  • 认缴出资和注册资本
  • arraylist源码分析1.8
  • java委托模式和代理模式
  • 费用发票可以抵扣进项税吗
  • 购买方销项负数发票怎么抵扣
  • 小规模纳税人开票限额是多少
  • 增值税延期滞纳金计算
  • linux环境中使用哪些搜索命令比find更高效
  • 银行手续费没有发票要调增吗
  • 员工公交费补贴怎么入账
  • 工资中的扣款怎么做账
  • 本票包括哪些
  • 支付给其他公司的借款属于什么现金流
  • 政府非税收入项目挂接流程图
  • 季度盈利弥补以前年度亏损的账务处理
  • 请演员的费用账务处理
  • 银行承兑汇票怎么操作
  • 收据能作为抵减成本吗
  • 金蝶软件版本号有哪些
  • 个体工商户必须建账吗
  • 做账工资和申报工资不一样
  • 酒店的经济性质是什么
  • sql is in
  • sqlserver2019的使用
  • win7系统开机屏幕出现一条蓝色横杠闪烁
  • win7系统安装程序无法创建新的系统分区
  • linux 磁盘情况
  • 电脑上dell是什么意思
  • mac装win8.1
  • linux tar -czvf
  • win7无法保存对权限所作的更改
  • CCClippingNode导致的贴图错误问题
  • 用unity做2d游戏
  • nodejs与springboot结合
  • 使用驱动器u盘之前需要格式化
  • win10下python
  • android怎么学
  • 浙江省网上税务局申报
  • 一般纳税人买车可以抵扣进项吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设