我針對數據庫運行以下查詢:MySQL的單行返回從臨時表
CREATE TEMPORARY TABLE med_error_third_party_tmp
SELECT `med_error_category`.description AS category, `med_error_third_party_category`.error_count AS error_count
FROM
`med_error_category` INNER JOIN `med_error_third_party_category` ON med_error_category.`id` = `med_error_third_party_category`.`category`
WHERE
year = 2003
GROUP BY `med_error_category`.id;
唯一的問題是,當我創建臨時表,做一個SELECT *就可以了,然後就返回多行,但上面的查詢只返回一行。它似乎總是返回一個單獨的行,除非我指定了一個GROUP BY,但它返回的百分比應該像GROUP BY一樣。
SELECT category,
error_count/SUM(error_count) AS percentage
FROM med_error_third_party_tmp;
這裏是服務器規格:
服務器版本:5.0.77
協議版本:10
服務器:localhost通過UNIX套接字
是否有人看到這個就導致一個問題問題?
+1,用於正確指出邏輯問題 – Randy 2010-11-15 19:38:03
好吧,這樣可以讓我們瞭解GROUP BY。我試圖得到臨時表中每行錯誤的百分比除以總數。正如你所說,這不能被依賴。 – Khirok 2010-11-15 21:39:47
我也將按類別分組。 – Khirok 2010-11-15 21:40:11