示例数据:
╔═════╦══════════╦════╦════╦
║ Fo ║ Bar ║ Bar 2 ║
╠═════╬══════════╬═════════╬
║ 6 ║ 10 ║ ║
║ 4 ║ 110 ║ ║
║ 3 ║ 120 ║ ║
║ 8 ║ 140 ║ ║
║ 3 ║ 180 ║ ║
║ 3 ║ 190 ║ ║
╚═════╩══════════╩════╩════╩
输出:
╔═════╦══════════╦════╦════╦
║ Fo ║ Bar ║ Bar 2 ║
╠═════╬══════════╬═════════╬
║ 3 ║ 190 ║ ║
║ 3 ║ 180 ║ ║
║ 3 ║ 120 ║ ║
║ 8 ║ 140 ║ ║
║ 4 ║ 110 ║ ║
║ 6 ║ 10 ║ ║
╚═════╩══════════╩════╩════╩
我可以使用PostgreSql
对其进行排序GROUP BY "foo", "bar2" ORDER BY max("bar") OVER (PARTITION BY "foo") DESC
但我有可定制的报告,包含许多不同的列和组。拥有更灵活的解决方案会很不错。
Yii2可能有现成的解决方案吗?
答案 0 :(得分:-1)
在 ModelSearch.php 文件中,在将参数加载到模型之前添加排序。例如;
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder' => ['COLUMNNAME' => SORT_DESC]]
]);
$this->load($params);