国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL高級查詢之與Group By集合使用介紹

2024-07-24 12:48:06
字體:
來源:轉載
供稿:網友

1 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中,你可以獲取表達式組合的連接值。你可以使用DISTINCT刪去重復值。假若你希望多結果值進行排序,則應該使用  ORDER BY子句。若要按相反順序排列,將 DESC (遞減) 關鍵詞添加到你要用ORDER BY 子句進行排序的列名稱中。默認順序為升序;可使用ASC將其明確指定。   SEPARATOR 后面跟隨應該被插入結果的值中間的字符串值。默認為逗號 (‘,')。通過指定SEPARATOR '' ,你可以刪除所有分隔符。

PS:就是可以在一個語句中得到 GROUP BY 被 聚合的項的每個子值的一個組合的字符串

 2 WITH ROLLUP

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

或者你可以使用 ROLLUP, 它能用一個問詢提供雙層分析。將一個 WITH ROLLUP修飾符添加到GROUP BY 語句,使詢問產生另一行結果,該行顯示了所有年份的總價值:

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

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

| year | SUM(profit) |

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

| 2000 |        4525 |

| 2001 |        3010 |

| NULL |        7535 |

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

總計高聚集行被年份列中的NULL值標出。

當有多重 GROUP BY 列時,ROLLUP產生的效果更加復雜。這時,每次在除了最后一個分類列之外的任何列出現一個 “break” (值的改變) ,則問訊會產生一個高聚集累計行。

例如,在沒有 ROLLUP的情況下,一個以年、國家和產品為基礎的關于 sales 表的一覽表可能如下所示:

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

    -> FROM sales

    -> GROUP BY year, country, product;

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苏尼特右旗| 洞头县| 焦作市| 柘城县| 竹溪县| 凌源市| 马鞍山市| 肇东市| 新闻| 合作市| 郎溪县| 清苑县| 牟定县| 克东县| 靖宇县| 沅江市| 西华县| 南安市| 芦山县| 华蓥市| 波密县| 新乡县| 钟山县| 河东区| 区。| 郁南县| 溧阳市| 许昌市| 于田县| 临颍县| 马山县| 永宁县| 宾川县| 沙河市| 游戏| 西盟| 宜州市| 昔阳县| 黑龙江省| 邯郸市| 东阿县|