1. 程式人生 > >[MySQL]子語句的查詢技巧

[MySQL]子語句的查詢技巧

eight group span 函數 mys 指定 註意 gpo credit

一、統計group by語句的行數

group by語句中,如果包含字段統計函數(諸如:count(),sum()...),這種情況下統計函數只會作用於group by的字段,因此想拿到最終結果的行數,只能靠返回結果後通過程序去遍歷統計行數,這裏有一個問題,如果被查詢的結果過於龐大,這將耗費大量的系統資源,運用子查詢可以解決這個問題

SELECT count(a.id) AS count FROM (SELECT id, sum(credit) AS credits FROM log_collect WHERE credit > 1 GROUP BY usage_type HAVING
credits > 8900) AS a

有幾點需要註意的是:

1.你必須指定一個統計字段給函數(這裏是count函數,指定了a.id),不能是a.*;

2.子表必須帶別名;

[MySQL]子語句的查詢技巧