聚合
在模型中也可以調用數據庫的聚合方法進行查詢,例如:
方法 | 說明 |
---|---|
count | 統計數量,參數是要統計的字段名(可選) |
max | 獲取最大值,參數是要統計的字段名(必須) |
min | 獲取最小值,參數是要統計的字段名(必須) |
avg | 獲取平均值,參數是要統計的字段名(必須) |
sum | 獲取總分,參數是要統計的字段名(必須) |
count
<?php
$user = new User();
$user->count();
// SELECT COUNT(*) as count FROM `easyswoole_user` LIMIT 1
$user->count('id', 'name');
// SELECT COUNT(id) as count FROM `easyswoole_user` GROUP BY name LIMIT 1
$user->queryLimit()->fields(['id', 'name']);
$user->count(null, 'name');
// SELECT COUNT(`id`) as id, COUNT(`name`) as name FROM `easyswoole_user` GROUP BY name LIMIT 1
max
$user = new User();
$user->max('id');
// SELECT MAX(`id`) as id FROM `easyswoole_user` LIMIT 1
$user->max('id', 'name');
// SELECT MAX(`id`) as id FROM `easyswoole_user` GROUP BY name LIMIT 1
$user->max(['id', 'name'], 'name');
// SELECT MAX(`id`) as id , MAX(`name`) as name FROM `easyswoole_user` GROUP BY name LIMIT 1
min
<?php
$user = new User();
$user->min('id');
// SELECT MIN(`id`) as id FROM `easyswoole_user` LIMIT 1
$user->min('id', 'name');
// SELECT MIN(`id`) as id FROM `easyswoole_user` GROUP BY name LIMIT 1
$user->min(['id', 'name'], 'name');
// SELECT MIN(`id`) as id , MIN(`name`) as name FROM `easyswoole_user` GROUP BY name LIMIT 1
avg
<?php
$user = new User();
$user->avg('id');
// SELECT AVG(`id`) as id FROM `easyswoole_user` LIMIT 1
$user->avg('id', 'name');
// SELECT AVG(`id`) as id FROM `easyswoole_user` GROUP BY name LIMIT 1
$user->avg(['id', 'name'], 'name');
// SELECT AVG(`id`) as id , AVG(`name`) as name FROM `easyswoole_user` GROUP BY name LIMIT 1
sum
<?php
$user = new User();
$user->sum('id');
// SELECT SUM(`id`) as id FROM `easyswoole_user` LIMIT 1
$user->sum('id', 'name');
// SELECT SUM(`id`) as id FROM `easyswoole_user` GROUP BY name LIMIT 1
$user->sum(['id', 'name'], 'name');
// SELECT SUM(`id`) as id , SUM(`name`) as name FROM `easyswoole_user` GROUP BY name LIMIT 1