RE: Select Distinct Order By Array_Position
"Mark Williams" <[email protected]> Mon, 26 Nov 2018 19:58:37 -0000
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> Sent: 26 November 2018 19:20 To: Mark Williams <[email protected]> Cc: [email protected] Subject: Re: Select Distinct Order By Array_Position On Nov 26, 2018, at 12:12 PM, Mark Williams <[email protected] <mailto:[email protected]> > 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?