テーブル内の 2 つの値のパーセンテージを計算し、それを列として選択する方法はありますか? それが可能であることは知っていますが、特に ZF2 コンテキストで可能かどうかを知りたいです。
ZF2 アプリケーションで、db (SQL Server) から大量のデータをフェッチする select を使用しています。このクエリは、空きディスク容量 (テーブル内の列) で並べ替えたいテーブル "ライブラリ" に関するものです。しかし、空き容量の絶対量ではなく、総ディスク容量に対するパーセンテージで並べ替えたいと思います。
だから私は次のようなことを意味します
libraries.freeSpace / libraries.totalSpace as 'percentage'
ただし、ZF2 選択内。これは現在のクエリです:
$resultSet = $this->tableGateway->select(function(Select $select) use($report){
$select->where('id = ' . $report[0]->customer)
->order('freeSpace', 'asc');
});
e: 答えます。
モデルに Zend\Db\Sql\Expression を使用します。
列を選択に追加します。
$select->columns(array(
'percentage' => new Expression('cast(libraries.freeSpace') as float / cast.('libraries.totalSpace') as float', false);