兴国资源网 Design By www.nnzcdc.com
PostgreSQL去重问题一直困扰着我,distinct和group by远不如MySQL用起来随便,但是如果掌握了规律,还是和MySQL差不多的
主要介绍的是distinct关键字
select distinct id,name,sex,age from student
假如有一张student表,字段如上图,我查询student表中所有信息用distinct去重(上面的SQL语句),pgsql就会根据所有的字段通过算法取得重复行的第一行,但是很明显,ID这个字段我在设计的时候不会让它重复,所以相当于没有去重
我想只根据name和age去重怎么办?
可以这么写
select distinct on (name,age) id,name,sex,age from student
这样就会只根据name和age去重了
总结一下:
distinct on (),括号里面的内容是要去重的列,括号外面的内容是你要查询展示的列,两者没有关系,你可以根据某些列去重不必将他们查询出来,最后这个举一个例子就是:
我要查询name和age,根据name和sex去重:
select distinct on (name,sex) name,age from student
补充:PostgreSQL按照某一字段去重,并显示其他字段信息
以前遇到去重的地方更多的是MySQL去重后统计,比如select count(distinct 字段) from 表,后来临时遇到用Postgresql查询全部信息,但要对某个字段去重,查资料发现select * from table group by 要去重的字段,在MySQL上可以用,就搬到Postgresql试一下发现不行,又Google一番,终于找到一种方案:select distinct on(字段) * from 表,就可以了。
如下图:
对name字段去重后再查询全部字段:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
兴国资源网 Design By www.nnzcdc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
兴国资源网 Design By www.nnzcdc.com
暂无评论...
更新日志
2024年06月05日
2024年06月05日
- 舅妈爆料:《死神》漫改新游将登陆Switch
- Steam社区服务器宕机 好友列表、社区中心无法访问
- PS+会员可以兑换新头像了!包括劳拉头像 截至6月12日
- 赵咏华.1997-请你放心【宝丽金】【WAV+CUE】
- 永彬Ryan.B.2024-Sunlight【SONY】【FLAC分轨】
- 品冠.2005-后来的我新歌+精选2CD【滚石】【WAV+CUE】
- 寻道大千朱雀连晕流怎么玩 朱雀连晕流玩法分享
- 寻道大千纯闪避流怎么玩 纯闪避流玩法分享
- 寻道大千最强流派推荐 最强流派是什么
- 93岁的默多克第五次结婚了!正式迎娶67岁俄罗斯新娘
- 《下一站江湖2》江湖霸图dlc门派内容
- 《间谍战》游戏售价
- 群星《经典咏流传HQ》头版限量编号[低速原抓WAV+CUE]
- 休闲音乐《世界音乐大师》开盘母带直刻[低速原抓WAV+CUE]
- 群星《世界古典名曲八方震耳》(24K黄金母盘直刻)[低速原抓WAV+CUE]