RE: Select Distinct Order By Array_Position

From: "Mark Williams" <markwillimas(at)gmail(dot)com>
To: "'Rob Sargent'" <robjsargent(at)gmail(dot)com>
Cc: <pgsql-sql(at)lists(dot)postgresql(dot)org>
Subject: RE: Select Distinct Order By Array_Position
Date: 2018-11-26 19:58:37
Message-ID: 004e01d485c2$6c45cb50$44d161f0$@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Wasn’t aware it was possible to put array_position statement in the actual select or is this a select within a select?

Also, I am selecting from an ordered (randomly) subset of data and I need to return the result set in the same order so do have to output the array as part of the order by?

__

From: Rob Sargent <robjsargent(at)gmail(dot)com>
Sent: 26 November 2018 19:20
To: Mark Williams <markwillimas(at)gmail(dot)com>
Cc: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: Select Distinct Order By Array_Position

On Nov 26, 2018, at 12:12 PM, Mark Williams <markwillimas(at)gmail(dot)com <mailto:markwillimas(at)gmail(dot)com> > wrote:

Hi,

I am getting an error “SELECT DISTINCT, ORDER BY expressions must appear in select list”. I am ordering by <http://documents.id/> documents.id and it appears in my select list. So I am guessing the problem lies with the array. Is there any way of achieving this? Query is below.

SELECT DISTINCT <http://documents.id/> documents.id, page_no FROM texts LEFT JOIN documents on <http://documents.id/> documents.id=texts.doc_id WHERE doc_id IN (26194, 2345, 189) AND (text LIKE '%RIVER%') ORDER BY array_position(ARRAY[26194, 2345, 189]::INTEGER[], <http://documents.id/> documents.id)

Thanks,

Mark

__

Try put the array_position clause in the select and add documents.id <http://documents.id> to the order by?

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Mark Williams 2018-11-26 19:59:55 RE: Select Distinct Order By Array_Position
Previous Message David G. Johnston 2018-11-26 19:46:22 Re: Select Distinct Order By Array_Position