Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gRNOv-0000IE-IR for pgsql-sql@arkaria.postgresql.org; Mon, 26 Nov 2018 20:22:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gRNOu-0003vW-1f for pgsql-sql@arkaria.postgresql.org; Mon, 26 Nov 2018 20:22:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gRNOt-0003rW-O4 for pgsql-sql@lists.postgresql.org; Mon, 26 Nov 2018 20:22:35 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gRNOr-0007Kj-Ct for pgsql-sql@lists.postgresql.org; Mon, 26 Nov 2018 20:22:34 +0000 Received: by mail-wm1-x335.google.com with SMTP id y185so29561wmd.1 for ; Mon, 26 Nov 2018 12:22:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:thread-index :content-language; bh=R+mEJye5fIFUDsFJuXqnMpmX3xf6t+N3enqeJiJPkNY=; b=VLiAtmWArwr+z1RDnu4cN5kspMxrdUoWt8Ay2PFjL2yESpEmdKMH7gGdygiI+/Mg/5 lYgkQjyeoHs685P1gvczaNVQM/l+SnzZQF+33CJnbEtTW71Ye4vDsKw+zcf9jKDVXmXy Xho9Xjb2IWZPu/rrqI/ApkgEFRBqNxNdjrMtNrxg7yWy1EUnQEjgBPOtrABF9AcI8HPw MSsjDsOoZaOT6IHU9GCUh9EqsrVwXDtuh71E3b9MyMWNDpEsCG4IYGcVZh8L32cAyzVL lIe5cBiYVSOH1XytfhA+qOl6+Ba8McBNOtehgDLCx3J1gyGMc/rV97YRNEeyqzn7QCi8 fIlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:references:in-reply-to:subject:date :message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=R+mEJye5fIFUDsFJuXqnMpmX3xf6t+N3enqeJiJPkNY=; b=M2F0BMij3w8uVyj/2t1l16CSWpjF/4uq97GdnVLRQTkIBVBfg5zA3aozbpLX1Ex9pR uZdPHT+AG0kTn0kqbXdPu02O1eL/8i5KX/KFEZeEqnl3iq5v2fmGJHfQ6CfA1qw7wmB1 uMB8Q3U+6NuaAEe0HoIKyPWqTIA4bpzHEWhfoM+hOmCpQ2eaMzlKku0BE8TeRrvNXpIF jfOTiwsFj9hFQN+I2kxjUm2yHHBqCFmRB2KRuF6YSh9gKQSgF+kx4k28IlyCX/wXZ/ub aWLDkAq5hNwFKdli0BzKgEqMga7NeA/soFCW2XEj02m4x14lj1c4AkCUpyBHET4/WLF3 HCyg== X-Gm-Message-State: AA+aEWbPTAkmG5UwqFpWncThTjl80ykL1kKLXdgxN9c4epWzJkHusQGj AZl3Eb1z2j8ubU3iSSOXGXI= X-Google-Smtp-Source: AJdET5eP0jgFMUYEBWR9DijcTHU7YzqkdA/AC5A/2pM0NS6ByE2YQ3YZUjeLlsdgXQMlfhqj0XIYJQ== X-Received: by 2002:a1c:6a01:: with SMTP id f1mr25935554wmc.17.1543263751268; Mon, 26 Nov 2018 12:22:31 -0800 (PST) Received: from LAPTOPE7EH7MDP (167.221-30-62.static.virginmediabusiness.co.uk. [62.30.221.167]) by smtp.gmail.com with ESMTPSA id x15sm1667621wrs.27.2018.11.26.12.22.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 12:22:30 -0800 (PST) From: "Mark Williams" To: "'David G. Johnston'" Cc: "'Rob Sargent'" , "'pgsql-sql'" References: <004301d485bc$00347250$009d56f0$@gmail.com> <57AC3D96-24B8-4D06-8946-AF6E0116888F@gmail.com> <004e01d485c2$6c45cb50$44d161f0$@gmail.com> In-Reply-To: Subject: RE: Select Distinct Order By Array_Position Date: Mon, 26 Nov 2018 20:22:28 -0000 Message-ID: <005601d485c5$c1303300$43909900$@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQEpSAIENSM0BdolJjQVlTJ5xV69VAHbwdfGAoJzNWYBsEj4LKaIh2wQ Content-Language: en-gb List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Many thanks. I'll mess around with what you've sent and see if I can get = it working. __ -----Original Message----- From: David G. Johnston =20 Sent: 26 November 2018 20:07 To: Mark Williams Cc: Rob Sargent ; pgsql-sql = Subject: Re: Select Distinct Order By Array_Position On Mon, Nov 26, 2018 at 12:58 PM Mark Williams = wrote: > > Wasn=E2=80=99t aware it was possible to put array_position statement = in the actual select or is this a select within a select? Easy enough to try either way > 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? Not sure what the question is... Anyway, maybe this will be helpful: SELECT vals.* FROM (VALUES (1::integer),(2),(3),(4),(5)) vals (v), LATERAL = unnest(ARRAY[3,1,5]::integer[]) with ordinality AS spec (s, o) WHERE v = =3D s ORDER BY o David J.