Example #1
0
 /**
  * @return $this|\Yaoi\Sql\SelectInterface|\Yaoi\Sql\UpdateInterface
  */
 public function build($statExpr)
 {
     $symbolsDerived = SymbolStat::table('s');
     $symbolsDerivedCols = SymbolStat::columns($symbolsDerived);
     $symbolCols = Symbol::columns();
     $this->expr = Database::getInstance()->statement()->select('? AS ?', $symbolCols->name, new S('function'))->from('? AS s', $statExpr)->leftJoin('? ON ? = ?', Symbol::table(), $symbolsDerivedCols->symbolId, $symbolCols->id)->groupBy('?', $symbolsDerivedCols->symbolId);
     $this->avgWtSymbols = array();
     foreach ($this->runs as $run) {
         $runXTable = SymbolStat::table($run->name);
         $runXCols = SymbolStat::columns($runXTable);
         $this->addColumns($run, $runXCols);
         $this->expr->leftJoin('? ON ? = ? AND ? = ? AND ? = ?', $runXTable, $runXCols->symbolId, $symbolsDerivedCols->symbolId, $runXCols->isInclusive, $this->isInclusive, $runXCols->runId, $run->id);
     }
     $outerExpr = Database::getInstance()->statement()->select('*')->from('? AS ss', $this->expr)->order('COALESCE(null, ?) DESC', array($this->avgWtSymbols))->limit($this->limit);
     return $outerExpr;
 }
Example #2
0
 /**
  * @return Statement
  */
 public function statement()
 {
     return Statement::create()->bindDatabase($this);
 }