Re: About Div
От | Ross Johnson |
---|---|
Тема | Re: About Div |
Дата | |
Msg-id | 44C6D4B7.70003@homemail.com.au обсуждение исходный текст |
Ответ на | Re: About Div (Otniel Michael <otmic_ie@yahoo.com>) |
Список | pgsql-sql |
Otniel Michael wrote: > Mr. Aaron. I am sorry, your solution didn't match in my case. > Example for your solution : > A = 1 > B = 1 > C = 1 > D = 1 > E = 1 > F = 1 > G = 4 > > G have 4 candy. Its too much for G. > > In my case, the solution is : > A = 1 > B = 1 > C = 1 > D = 1 > E = 2 > F = 2 > G = 2 > > The extra candy is given to three child. > > Do you have the other solution? I need function in postgresql for my case. > Because my loop is too slow. Would this achieve the result you're looking for, or must it be done with a function? Assuming you already know the value of totalchildren and totalcandy: BEGIN -- Everyone gets at least this number, which could be zero or more. UPDATE X SET value = (totalcandy / totalchildren); -- Hand the remainder out one at a time until all are gone. UPDATE X SET value = (value + 1) WHERE code = (SELECT code FROM X ORDER BY code DESC LIMIT (totalcandy % totalchildren)); COMMIT Ross
В списке pgsql-sql по дате отправления: