Tag: group by
-
MySQL: GROUP_CONCAT function
在 MySQL 上經常遇到如下的資料: id value 1 A 1 B 1 C 2 A 2 C 這種情況在要輸出報表的時候就覺得很麻煩,一旦 Group By 起來,就失去了 value 的內容。不想丟失 value 的內容也不想出現多筆重複的 id 就得多下幾次 sql 才能取得完整的資料。 今天又是一個偶然在 StackOverflow 上看到 GROUP_CONCAT() 這個沒見過的指令,馬上試試有什麼效果。 SELECT id, GROUP_CONCAT(value) as values FROM table GROUP BY id ORDER BY id 就能得到以下的結果: id=1, values=A,B,C id=2,…
-
MySQL: How To Count Rows But Still Show All The Rows?
之前寫過 MySQL: Displaying Rows With COUNT 0 With Group By,用於強制顯示 Count() 為 0 的資料。最近又看到另一種寫法,因為我自己很少這麼寫,所以留個筆記。 SELECT col1, (SELECT COUNT(*) FROM table1 t1 WHERE t1.id = t2.t1_id) as Total FROM table2 t2 GROUP BY t2.id; 把子查詢放在 SELECT 敘述。試了一下,這種寫法的查詢速度會比單純的 left join 慢上許多,實際應用要視資料筆數來決定。
-
MySQL: Displaying Rows With COUNT 0 With Group By
MySQL 裡用 Count 和 Group By 來做統計是常用的寫法。舉例來說,以下兩個 table,一個紀錄公司行號的資料,一個紀錄員工資料。 Company id company 1 Google 2 Microsoft Employee id employee company 1 Jack Google 2 Eric Microsoft