[SQL] Random sort with distinct
I have the following query Select Distinct VehicleMake, VehicleModel >From VehicleYearMakeModelTrim Order by random() Limit 10; I don't want to bring back the random number I just want the sort order to be random. How can I sort randomly? This query breaks because random() is not in the select. Thanks Pam
Re: [SQL] Random sort with distinct
Hey Ozer, How about dynamic queries? 2010/10/2 Ozer, Pam > I have the following query > > > > Select Distinct VehicleMake, VehicleModel > > From VehicleYearMakeModelTrim > > Order by random() > > Limit 10; > > > > I don’t want to bring back the random number I just want the sort order to > be random. How can I sort randomly? This query breaks because random() is > not in the select. > > > > Thanks > > > > Pam > > > > -- // Dmitriy.
Re: [SQL] Random sort with distinct
This runs fine on my 8.4 install. What version are you using and what error message are you getting? --Lee On 10/01/2010 04:51 PM, Ozer, Pam wrote: I have the following query Select Distinct VehicleMake, VehicleModel From VehicleYearMakeModelTrim Order by random() Limit 10; I don’t want to bring back the random number I just want the sort order to be random. How can I sort randomly? This query breaks because random() is not in the select. Thanks Pam -- Lee Hachadoorian PhD Student, Geography Program in Earth & Environmental Sciences CUNY Graduate Center
Re: [SQL] Random sort with distinct
"Ozer, Pam" writes: > Select Distinct VehicleMake, VehicleModel > From VehicleYearMakeModelTrim > Order by random() > Limit 10; > I don't want to bring back the random number I just want the sort order > to be random. How can I sort randomly? This query breaks because > random() is not in the select. Well, yeah: the implication of the ORDER BY is that a new random value is to be computed for each row of VehicleYearMakeModelTrim. After you combine rows with DISTINCT it's not clear which of those values should be used to sort a grouped row. You need to put the DISTINCT and the ORDER BY in separate query levels, like this: select * from (Select Distinct VehicleMake, VehicleModel From VehicleYearMakeModelTrim) ss Order by random() Limit 10; regards, tom lane -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql