ΠΡΠΈΠ²Π΅Ρ!
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ:
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');
});
console.log (topScores.toString ()) ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ
select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ "ΠΎΡΠ΅Π½ΠΊΠΈ" Π²Π½ΡΡΡΠΈ from () ????
ΠΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π²Ρ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ?
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ:
select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores`
ΠΠ°ΠΏΡΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ, Π½ΠΎ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ "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'));
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
.as
ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡ, ΠΈ ΠΊΠ»ΠΎΠ½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡscores
Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ: