我在构造查询以使用以下条件时遇到了一些麻烦:
- 与组织匹配
- 按分数(desc)排序,然后按句柄(asc)排序
- 按类型分组
所以这个查询是我的出发点:
select * from social_media_handles where org = '00000001' order by score desc, handle asc;
这将为我提供以下数据......然后我需要按类型分组,所以我只提取最匹配的 social_media_handles。
org | handle | url | type | score | dataset_date
----------+---------------------------------------------------------------+-----------------------------------------+----------+-----------------+--------------
00000001 | boathousesw15 | http://www.boathouseputney.co.uk | twitter | 500111972000056 | 2013-10-15
00000001 | aspall | http://www.boathouseputney.co.uk | twitter | 500111972000018 | 2013-10-15
00000001 | nathansloane | http://www.boathouseputney.co.uk | twitter | 500111972000018 | 2013-10-15
00000001 | youngspubs | http://www.boathouseputney.co.uk | twitter | 500111972000018 | 2013-10-15
00000001 | pages/the-boathouse-putney/153429008029137 | http://www.boathouseputney.co.uk | facebook | 500111972000011 | 2013-10-15
00000001 | putneysocial | http://www.boathouseputney.co.uk | twitter | 500111972000009 | 2013-10-15
00000001 | theexchangesw15 | http://www.boathouseputney.co.uk | twitter | 500111972000009 | 2013-10-15
00000001 | youngspubs | http://www.youngshotels.co.uk | twitter | 500111970000016 | 2013-10-15
预期产出
org | handle | url | type | score | dataset_date
----------+---------------------------------------------------------------+-----------------------------------------+----------+-----------------+--------------
00000001 | boathousesw15 | http://www.boathouseputney.co.uk | twitter | 500111972000056 | 2013-10-15
00000001 | pages/the-boathouse-putney/153429008029137 | http://www.boathouseputney.co.uk | facebook | 500111972000011 | 2013-10-15
我尝试过group by
,distinct
和子查询,但运气不佳。有没有围绕这个问题的模式?
我正在使用 Postgres 并解决了这个问题distinct on
,但我正在寻找与不同供应商兼容的版本。