RE: Randomize by Score and DESC

2008-12-08 Thread Jerry Schwartz


-Original Message-
From: Brent Baisley [mailto:[EMAIL PROTECTED]
Sent: Saturday, December 06, 2008 11:35 AM
To: sangprabv
Cc: mos; mysql@lists.mysql.com
Subject: Re: Randomize by Score and DESC

That's because RAND() is a decimal (0.37689672).  Try score*RAND().

[JS] That in itself shouldn't matter. A random number is a random number,
regardless of the scale. ORDER BY RAND() is equivalent to ORDER BY
myweight*RAND().

As for ordering by score*RAND(), if score comes up 12 and RAND() comes up
.1, you will have a product equal to 1.2; if score comes up as 10 and RAND()
comes up .2, then you'll have a product equal to 2.0. That is not going to
give you what you want.

I'm pretty sure what you need to do is come up with a random sample first,
and then order the result.

SELECT score FROM (SELECT score FROM table WHERE RAND()  .1) ORDER BY score
DESC;

That should give you a random sample of approximately 10% of your original
table, in descending order by score.


Regards,
 
Jerry Schwartz
The Infoshop by Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032
 
860.674.8796 / FAX: 860.674.8341
 
www.the-infoshop.com
www.giiexpress.com
www.etudes-marche.com




Brent Baisley

On Nov 30, 2008, at 2:03 AM, sangprabv wrote:

 Hi,
 Thans for the reply, I have tried it but I don't see the RAND() to be
 work. This list is always the same. TIA


 Willy


 -Original Message-
 From: mos [EMAIL PROTECTED]
 To: sangprabv [EMAIL PROTECTED], mysql@lists.mysql.com
 Subject: Re: Randomize by Score and DESC
 Date: Sat, 29 Nov 2008 13:05:09 -0600
 Mailer: QUALCOMM Windows Eudora Version 6.0.0.22

 At 09:15 AM 11/29/2008, sangprabv wrote:
 Hi,
 I have a query like this SELECT * FROM table ORDER BY score DESC,
 RAND() The aim is to randomize the result by score with descending
 order. But it doesn't work. What missed here? TIA.


 Willy


 Willy,
   That is because you are ordering by Score then Rand. If Score
 is an
 integer, try

 SELECT * FROM table ORDER BY score+RAND() DESC


 This will randomize the higher scores first, followed by the lower
 scores etc..



 Mike



 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
infoshop.com





-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Randomize by Score and DESC

2008-12-06 Thread Brent Baisley

That's because RAND() is a decimal (0.37689672).  Try score*RAND().

Brent Baisley

On Nov 30, 2008, at 2:03 AM, sangprabv wrote:


Hi,
Thans for the reply, I have tried it but I don't see the RAND() to be
work. This list is always the same. TIA


Willy


-Original Message-
From: mos [EMAIL PROTECTED]
To: sangprabv [EMAIL PROTECTED], mysql@lists.mysql.com
Subject: Re: Randomize by Score and DESC
Date: Sat, 29 Nov 2008 13:05:09 -0600
Mailer: QUALCOMM Windows Eudora Version 6.0.0.22

At 09:15 AM 11/29/2008, sangprabv wrote:

Hi,
I have a query like this SELECT * FROM table ORDER BY score DESC,
RAND() The aim is to randomize the result by score with descending
order. But it doesn't work. What missed here? TIA.


Willy



Willy,
  That is because you are ordering by Score then Rand. If Score  
is an

integer, try


SELECT * FROM table ORDER BY score+RAND() DESC



This will randomize the higher scores first, followed by the lower  
scores etc..




Mike



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Randomize by Score and DESC

2008-11-29 Thread mos

At 09:15 AM 11/29/2008, sangprabv wrote:

Hi,
I have a query like this SELECT * FROM table ORDER BY score DESC,
RAND() The aim is to randomize the result by score with descending
order. But it doesn't work. What missed here? TIA.


Willy



Willy,
  That is because you are ordering by Score then Rand. If Score is an 
integer, try



SELECT * FROM table ORDER BY score+RAND() DESC



This will randomize the higher scores first, followed by the lower scores etc..



Mike  



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Randomize by Score and DESC

2008-11-29 Thread sangprabv
Hi,
Thans for the reply, I have tried it but I don't see the RAND() to be
work. This list is always the same. TIA


Willy


-Original Message-
From: mos [EMAIL PROTECTED]
To: sangprabv [EMAIL PROTECTED], mysql@lists.mysql.com
Subject: Re: Randomize by Score and DESC
Date: Sat, 29 Nov 2008 13:05:09 -0600
Mailer: QUALCOMM Windows Eudora Version 6.0.0.22

At 09:15 AM 11/29/2008, sangprabv wrote:
Hi,
I have a query like this SELECT * FROM table ORDER BY score DESC,
RAND() The aim is to randomize the result by score with descending
order. But it doesn't work. What missed here? TIA.


Willy


Willy,
   That is because you are ordering by Score then Rand. If Score is an 
integer, try

SELECT * FROM table ORDER BY score+RAND() DESC


This will randomize the higher scores first, followed by the lower scores etc..



Mike  



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]