次の条件を使用するクエリを作成するのに少し問題があります。
- 組織との照合
- スコア (降順) で並べ替え、次にハンドル (昇順) で並べ替え
- タイプでグループ化
したがって、このクエリは私の出発点です。
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
いますが、さまざまなベンダーと互換性のあるバージョンを探しています。