跳至正文

MySQL 使用 SUM() 汇总后再用汇总结果排序的实现

单表汇总并排序:

$sql = "SELECT
	*,
	SUM(jifen) AS jifen_sum,
	SUM(shichang) AS shichang_sum,
	COUNT(qiandao) AS qiandao_sum
FROM
	`jilu`
WHERE
	`jifen` > 0
GROUP BY
	`member_id`
ORDER BY
	`jifen_sum` DESC";

多表联合查询:

$sql = "SELECT
	A.`id`,
	A.`name`,
	A.`phone`,
	B.`member_id`,
	SUM(B.`jifen`) AS `jifen_sum`,
	SUM(B.`shichang`) AS `shichang_sum`,
	COUNT(B.`qiandao`) AS `qiandao_sum`
FROM
	`member` AS A LEFT JOIN `jilu` AS B ON A.`id` = B.`member_id`
WHERE
	B.jifen > 0
GROUP BY
	B.member_id
ORDER BY
	`jifen_sum` DESC";

GROUP BY 之后 通过 COUNT() 统计分组后的总数:

$sql = "SELECT COUNT(*) FROM (SELECT COUNT(*) FROM `jilu` WHERE `jifen` > 0 GROUP BY `member_id`) S"; 
标签: