0
我目前正在编写报告生成器。对于一份报告,我需要根据给定的特征(供应商,登录用户,语言等)进行分类,每行包括我感兴趣的特征的名称,匹配该特征的项目的数量以及百分比这个数字代表总的项目,前两个都没有问题,第三是。MySQL:在进一步计算中使用聚合结果
例如,获得由我会使用这样的查询语言的崩溃。
SELECT lang_id,
COUNT(IF(open=TRUE,1,NULL)) AS lang_total
FROM table
GROUP BY lang_id;
这给我每种语言的项目数
我可以得到表中的项目总数并将其存储在变量sim用普通的计数就足够了。
SELECT @totalOpen:=COUNT(*) FROM table WHERE open = TRUE;
现在我想添加第三列,这是数字在lang_total乘以100 @totalOpen值除以(换句话说,即符合条件的所有项目的百分比)。一些沿着以下几点:
这是我有麻烦的一点,因为据我可以告诉你不能在计算中使用聚合列。
SELECT lang_id,
COUNT(IF(open=true,1,NULL)) AS lang_total
(lang_total/@totalOpen)*100 as lang_percent
FROM table
GROUP BY lang_id;
我敢肯定,在MySQL中必须有这样做的方法,但我一直无法跟踪它。任何人都可以帮忙吗?