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中必須有這樣做的方法,但我一直無法跟蹤它。任何人都可以幫忙嗎?