mysql-关于groupby和distinct

更新时间:2023-07-11 20:19:54 阅读: 评论:0

男士
mysql-关于groupby和distinct
有⼀个需求,从⼀堆 id 相同记录中取得第⼀条记录,并显⽰所有字段
例:
id        value
111    aaa
111    abc
222  bcefd
222  lkjdf
由于不了解mysql的GroupBy,第⼀个相法就是不能⽤GroupBy。但解决这个问题正是⽤GroupBy。
下⾯是⽹上找的GroupBy的⼀些说明:
牛尔推荐GROUP BY 语法在 MySQL 数据库中的⽤法与其他数据库相差较⼤。对于标准 SQL ⽽⾔,GROUP BY
⼀定要结合聚合函数使⽤,⽽且选择的字段除了聚合函数外,还必须在 GROUP BY 中出现。但是在 MySQL 中扩展了 GROUP BY 的功能:
不加聚合函数的情况下,返回的结果是 GROUP BY 结果集中第⼀⾏,如上⾯例⼦所⽰。
GROUP BY 结合聚合函数的时候,选择的字段不必在 GROUP BY 中存在,MySQL 具有隐含字段的功能。
所以我们可以根据 MySQL 对 GROUP BY 的扩展特性,结合另外⼀些关键字如 ORDER BY 等,⽅便的得到想要的查询结果。夺的成语
第⼀个想到的办法是distinct,例如:lect distinct(id), value from table。
颠倒词但这样做,得到的不是distinct后的记录,是所有记录。如果想实现distinct效果,就得只使⽤要distinct的字段。大二个人学年总结
狮子头鱼找了找,看到⽹上还有⼀个⽤distinct去重复,并取得所有字段的⽅法,但其实也是使⽤了GroupBy:
ppt结构图lect *, count(distinct name) from table group by name
参考:
关于GroupBy和Distinct的性能问题,找了⼀些资料,有的说Distinct好,有的说GroupBy好,
雷锋什么时候死的
但有⼀点是相同的,就是被查找的字段上有索引是最好的。

本文发布于:2023-07-11 20:19:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1091344.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字段   聚合   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图