¡Hola!
Tengo esta consulta:
var scores = Bookshelf.knex('audition_vote').sum('voting_power as score').groupBy('audition_id')
y quiero envolver esta consulta como:
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');
});
impresiones de console.log (topScores.toString ())
select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores
¿Cómo utilizar la variable "puntuaciones" dentro de () ????
¿Cuál es la consulta que busca generar en última instancia?
El último:
select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores`
La consulta es correcta, pero quiero reutilizar la variable "puntuaciones".
Oh, puedes simplemente hacer:
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());
El .as
se ignora a menos que esté dentro de una subconsulta, y el clon solo es necesario si está mutando la consulta scores
otro lugar.
O podrías hacer:
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'));
Comentario más útil
Oh, puedes simplemente hacer:
El
.as
se ignora a menos que esté dentro de una subconsulta, y el clon solo es necesario si está mutando la consultascores
otro lugar.O podrías hacer: