Group By 语句结合聚合函数
2015-09-07 15:44
204 查看
在mysql中,group by 语句可以省略聚合函数
假设有一个表 info身份证 | 姓名 |
---|---|
idcard1 | name1 |
idcard2 | name2 |
idcard3 | name1 |
select 身份证,姓名 from info group by 姓名;
按照常理讲,我们会认为这条语句会出错,因为当两个相同的姓名合并成一条记录的时候,我们需要告诉数据库如果身份证不同的时候应该显示谁。
但是这条语句居然正常工作,结果是冲突身份证号中的一个。
具体解释可以参考stackoverflow的回答。
这种机制的好处包括
- 很多时候我们知道两个表是一对一关联的时候,join操作以后就可以通过group by来简单对某些字段去重。
- 有时候需要一些随机数据属性
不好之处在于不确定性会产生隐藏的bug
在postgres中,聚合函数必须要有
select max(身份证),姓名 from info group by 姓名;
这里会取相同姓名的最大的身份证,相比于mysql,并没有增加什么语法难度,但是结果更可控
相关文章推荐
- rk3188 公板调试记录
- https协议了解,以及相关协议的解析
- linux设备驱动归纳总结(八):3.设备管理的分层与面向对象思想
- Quartz2D
- TraceView工具的使用说明
- play 一步一步来 之 细说框架目录结构
- Caffe学习笔记3-Layer的相关学习
- JNI 共享内存
- CMS收集器的一些参数
- POJ1207解题报告
- C++类成员声明时候不能初始化
- LoadLibraryA加载dll失败
- BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离
- 让驰骋工作流程引擎 ccbpm使用自定义表单来实现自己的业务逻辑.
- NSString / NSData / char* 类型之间的转换
- 验证码
- 生产者消费者之 wait / notify
- linux设备驱动归纳总结(八):2.match.probe.remove
- xpath: Python网页爬虫定位辅助利器
- html解析器 HtmlAgilityPack