log(2, no_of_jobs + 1) will give 0 for 0 jobs, 1 for 1 job, 1.58 for 2 etc. etc.
On 11 Feb 2011, at 14:04, Johan De Meersman wrote:
> How about the square root of the number of jobs, or some other root if you
> want another coefficient? That doesn't have the limiting behaviour a
> logarithmic function offers, though.
> On Fri, Feb 11, 2011 at 2:08 PM, Richard Reina <gatorreina@stripped> wrote:
>> Hi Travis,
>> This is very helpful thank you. However, is there a way to make it not be
>> less than a 1. As it's written below someone with one job gets a zero and
>> someone with no jobs gets a NULL. It would be great if someone with 1 job
>> got a 1 and someone with zero jobs got a 0.
>> Thanks again,
>> 2011/2/10 Travis Ard <travis_ard@stripped>
>>> Maybe some sort of logarithmic expression?
>>> select no_of_jobs, 10 * log(10, no_of_jobs) as job_weight
>>> from data;
>>> Of course, you'd have to tweak your coefficients to match the weighting
>>> system you want to use.
>>> -----Original Message-----
>>> From: Richard Reina [mailto:gatorreina@stripped]
>>> Sent: Thursday, February 10, 2011 3:07 PM
>>> To: mysql@stripped
>>> Subject: function to limit value of integer
>>> Is there a function that can limit the value of an integer in a MySQL
>>> query? I am trying to write a query that scores someones experience.
>>> However, number of jobs can become overweighted in the the query below.
>>> someone has done 10 jobs vs. 1 that's a big difference in experience. But
>>> someone who's done 100 vs. someone who's done 50 the difference in
>>> experience is not so great as they are both near the top of the learning
>>> curve. In essence number of jobs becomes less and less of a contributor
>>> it increases. Is there a way to limit it's value as it increases?
>>> SELECT years_srvd + no_of_jobs AS EXPERIENCE
> Bier met grenadyn
> Is als mosterd by den wyn
> Sy die't drinkt, is eene kwezel
> Hy die't drinkt, is ras een ezel
Philip Riebold, p.riebold@stripped /"\
Media Services \ /
University College London X ASCII Ribbon Campaign
Windeyer Building, 46 Cleveland Street / \ Against HTML Mail
London, W1T 4JF
+44 (0)20 7679 9259 (direct), 09259 (internal)