欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL高級(jí)查詢(xún)之與Group By集合使用介紹

 更新時(shí)間:2013年08月19日 21:42:45   作者:  
在MySQL中,你可以獲取表達(dá)式組合的連接值。你可以使用DISTINCT刪去重復(fù)值。假若你希望多結(jié)果值進(jìn)行排序,則應(yīng)該使用 ORDER BY子句

GROUP_CONCAT

mysql> SELECT student_name,
    ->     GROUP_CONCAT(test_score)
    ->     FROM student
    ->     GROUP BY student_name;

Or:

mysql> SELECT student_name,
    ->     GROUP_CONCAT(DISTINCT test_score
    ->               ORDER BY test_score DESC SEPARATOR ' ')
    ->     FROM student
    ->     GROUP BY student_name;

在MySQL中,你可以獲取表達(dá)式組合的連接值。你可以使用DISTINCT刪去重復(fù)值。假若你希望多結(jié)果值進(jìn)行排序,則應(yīng)該使用  ORDER BY子句。若要按相反順序排列,將 DESC (遞減) 關(guān)鍵詞添加到你要用ORDER BY 子句進(jìn)行排序的列名稱(chēng)中。默認(rèn)順序?yàn)樯?;可使用ASC將其明確指定。   SEPARATOR 后面跟隨應(yīng)該被插入結(jié)果的值中間的字符串值。默認(rèn)為逗號(hào) (‘,')。通過(guò)指定SEPARATOR '' ,你可以刪除所有分隔符。

PS:就是可以在一個(gè)語(yǔ)句中得到 GROUP BY 被 聚合的項(xiàng)的每個(gè)子值的一個(gè)組合的字符串

 2 WITH ROLLUP

GROUP BY子句允許一個(gè)將額外行添加到簡(jiǎn)略輸出端 WITH ROLLUP 修飾符。這些行代表高層(或高聚集)簡(jiǎn)略操作。ROLLUP 因而允許你在多層分析的角度回答有關(guān)問(wèn)詢(xún)的問(wèn)題

或者你可以使用 ROLLUP, 它能用一個(gè)問(wèn)詢(xún)提供雙層分析。將一個(gè) WITH ROLLUP修飾符添加到GROUP BY 語(yǔ)句,使詢(xún)問(wèn)產(chǎn)生另一行結(jié)果,該行顯示了所有年份的總價(jià)值:

mysql> SELECT year, SUM(profit) FROM sales GROUP BY year WITH ROLLUP;

+------+-------------+

| year | SUM(profit) |

+------+-------------+

| 2000 |        4525 |

| 2001 |        3010 |

| NULL |        7535 |

+------+-------------+

總計(jì)高聚集行被年份列中的NULL值標(biāo)出。

當(dāng)有多重 GROUP BY 列時(shí),ROLLUP產(chǎn)生的效果更加復(fù)雜。這時(shí),每次在除了最后一個(gè)分類(lèi)列之外的任何列出現(xiàn)一個(gè) “break” (值的改變) ,則問(wèn)訊會(huì)產(chǎn)生一個(gè)高聚集累計(jì)行。

例如,在沒(méi)有 ROLLUP的情況下,一個(gè)以年、國(guó)家和產(chǎn)品為基礎(chǔ)的關(guān)于 sales 表的一覽表可能如下所示:

mysql> SELECT year, country, product, SUM(profit)

    -> FROM sales

    -> GROUP BY year, country, product;

+------+---------+------------+-------------+

| year | country | product    | SUM(profit) |

+------+---------+------------+-------------+

| 2000 | Finland | Computer   |        1500 |

| 2000 | Finland | Phone      |         100 |

| 2000 | India   | Calculator |         150 |

| 2000 | India   | Computer   |        1200 |

| 2000 | USA     | Calculator |          75 |

| 2000 | USA     | Computer   |        1500 |

| 2001 | Finland | Phone      |          10 |

| 2001 | USA     | Calculator |          50 |

| 2001 | USA     | Computer   |        2700 |

| 2001 | USA     | TV         |         250 |

+------+---------+------------+-------------+

表示總值的輸出結(jié)果僅位于年/國(guó)家/產(chǎn)品的分析級(jí)別。當(dāng)添加了 ROLLUP后, 問(wèn)詢(xún)會(huì)產(chǎn)生一些額外的行:

mysql> SELECT year, country, product, SUM(profit)

    -> FROM sales

    -> GROUP BY year, country, product WITH ROLLUP;

+------+---------+------------+-------------+

| year | country | product    | SUM(profit) |

+------+---------+------------+-------------+

| 2000 | Finland | Computer   |        1500 |

| 2000 | Finland | Phone      |         100 |

| 2000 | Finland | NULL       |        1600 |

| 2000 | India   | Calculator |         150 |

| 2000 | India   | Computer   |        1200 |

| 2000 | India   | NULL       |        1350 |

| 2000 | USA     | Calculator |          75 |

| 2000 | USA     | Computer   |        1500 |

| 2000 | USA     | NULL       |        1575 |

| 2000 | NULL    | NULL       |        4525 |

| 2001 | Finland | Phone      |          10 |

| 2001 | Finland | NULL       |          10 |

| 2001 | USA     | Calculator |          50 |

| 2001 | USA     | Computer   |        2700 |

| 2001 | USA     | TV         |         250 |

| 2001 | USA     | NULL       |        3000 |

| 2001 | NULL    | NULL       |        3010 |

| NULL | NULL    | NULL       |        7535 |

+------+---------+------------+-------------+

當(dāng)你使用 ROLLUP時(shí), 你不能同時(shí)使用 ORDER BY子句進(jìn)行結(jié)果排序。換言之, ROLLUP 和ORDER BY 是互相排斥的。然而,你仍可以對(duì)排序進(jìn)行一些控制。在 MySQL中, GROUP BY 可以對(duì)結(jié)果進(jìn)行排序,而且你可以在GROUP BY列表指定的列中使用明確的 ASC和DESC關(guān)鍵詞,從而對(duì)個(gè)別列進(jìn)行排序。 (不論如何排序被ROLLUP添加的較高級(jí)別的總計(jì)行仍出現(xiàn)在它們被計(jì)算出的行后面)。

LIMIT可用來(lái)限制返回客戶端的行數(shù)。LIMIT 用在 ROLLUP后面, 因此這個(gè)限制 會(huì)取消被ROLLUP添加的行

相關(guān)文章

最新評(píng)論