Knex: knex рдХреЗ рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП "рд╕реЗ" рдЦрдВрдб рдореЗрдВ рдЙрдкрд╢реНрд░реЗрдгреА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЕрдХреНрддреВре░ 2014  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рдирдорд╕реНрддреЗ!
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдкреНрд░рд╢реНрди рд╣реИ:

var scores = Bookshelf.knex('audition_vote').sum('voting_power as score').groupBy('audition_id')

рдФрд░ рдореИрдВ рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рдкреЗрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

var topScores = Bookshelf.knex.distinct('score').from(function() {
  // This works but i want to use "scores" variable
  this.sum('voting_power as score').from('audition_vote').groupBy('audition_id').as('scores'); 
});

рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ(topScores.toString ()) рдкреНрд░рд┐рдВрдЯ

select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores

рдЕрдВрджрд░ рд╕реЗ рдЪрд░ "рд╕реНрдХреЛрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ () ????

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдУрд╣, рдЖрдк рдмрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var scores = Bookshelf.knex('audition_vote')
   .sum('voting_power as score')
   .groupBy('audition_id')
   .as('scores');
var topScores = Bookshelf.knex.distinct('score').from(scores.clone());

.as рдХреЛ рддрдм рддрдХ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕рдмрдХреНрд╡реЗрд░реА рдХреЗ рднреАрддрд░ рди рд╣реЛ, рдФрд░ рдХреНрд▓реЛрди рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдЖрдк scores рдХреНрд╡реЗрд░реА рдХреЛ рдХрд╣реАрдВ рдФрд░ рдмрджрд▓ рд░рд╣реЗ рд╣реЛрдВред

рдпрд╛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var scores = Bookshelf.knex('audition_vote')
   .sum('voting_power as score')
   .groupBy('audition_id');
var topScores = Bookshelf.knex.distinct('score').from(scores.clone().as('scores'));

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╡рд╣ рдХреМрди рд╕реА рдХреНрд╡реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдВрддрддрдГ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдЕрдВрддрд┐рдо рдПрдХ:

select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores`

рдХреНрд╡реЗрд░реА рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд░ "рд╕реНрдХреЛрд░" рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

рдУрд╣, рдЖрдк рдмрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var scores = Bookshelf.knex('audition_vote')
   .sum('voting_power as score')
   .groupBy('audition_id')
   .as('scores');
var topScores = Bookshelf.knex.distinct('score').from(scores.clone());

.as рдХреЛ рддрдм рддрдХ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕рдмрдХреНрд╡реЗрд░реА рдХреЗ рднреАрддрд░ рди рд╣реЛ, рдФрд░ рдХреНрд▓реЛрди рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдЖрдк scores рдХреНрд╡реЗрд░реА рдХреЛ рдХрд╣реАрдВ рдФрд░ рдмрджрд▓ рд░рд╣реЗ рд╣реЛрдВред

рдпрд╛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var scores = Bookshelf.knex('audition_vote')
   .sum('voting_power as score')
   .groupBy('audition_id');
var topScores = Bookshelf.knex.distinct('score').from(scores.clone().as('scores'));
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕