[MYSQL -13]過濾分組
- 目前為止的所有計算都是在表的所有資料或匹配特定的WHERE子句的資料上進行的。
- 分組允許資料分為多個邏輯組,以便能對每個組進行聚集計算。
- GROUP BY子句指示MYSQL分組資料,然後對每個組而不是整個結果集進行聚集。
- GROUP BY必須出現在WHERE子句之後,ORDER BY子句之前。
- WHERE過濾行,HAVING 過濾分組。
資料分組
SELECT vend_id,COUNT(*) AS num_prods
FROM products
GROUP BY vend_id;
- GROUP BY子句中列出的每個列都必須是檢索列或有效的表示式(但不能是聚集函式)。如果在SELECT中使用表示式,則必須在GROUP BY子句中指定相同的表示式。不能使用別名。
- 如果分組列中具有NULL值,則NULL將作為一個分組返回。如果有多行NULL值,它們將分為一組。
過濾分組
select cust_id,count(*) as orders from orders group by cust_id having count(*)>=2;
######
#列出具有2個以上,價格大於10的產品的供應商。
######
select vend_id,count(*) as num_prods
from products
where prod_price >=10
group by vend_id
having count(*)>=2;
分組和排序
GROUP BY與GROUP BY差別
ORDER BY | GROUP BY |
---|---|
排序產生的輸出 | 分組行。但輸出的可能不是分組的順序 |
任意列都可以使用(甚至非選擇的列) | 只可能使用選擇列或表示式列,而且必須使用每個選擇列表示式 |
不一定需要 | 如果與聚集函式一起使用列(或表示式),則必須使用 |
select order_num,sum(quantity*item_price) as ordertotal
from orderitems
group by order_num
having sum(quantity*item_price) >=50
order by ordertotal;
相關文章
- 聚合函式及分組與過濾(GROUP BY … HAVING)函式
- LINQ簡明教程:資料排序、分組、過濾排序
- 13. 分組資料
- MYSQL——分組MySql
- mysql資料過濾MySql
- 13.gateway中的過濾器的介紹以及自定義過濾器Gateway過濾器
- [MYSQL -7]資料過濾MySql
- [MYSQL-6] 過濾資料MySql
- 使用MySQL之過濾資料MySql
- MySQL的Group By分組MySql
- mysql過濾複製的實現MySql
- MySQL實現分組排序MySql排序
- 5分鐘掌握布隆過濾器過濾器
- chapter4:內容過濾及分類---基於物品屬性的過濾APT
- MySQL主從複製_複製過濾MySql
- MySQL 5.7 複製的過濾引數MySql
- 過濾Servlet--過濾器Servlet過濾器
- DRF 過濾排序分頁異常處理排序
- mysql實戰--MYSQL中的SQL分組方法MySql
- MySQL隱碼攻擊Fuzz過濾字元字典MySql字元
- mysql完整備份時過濾掉某些庫MySql
- MySQL搭建帶過濾的複製環境MySql
- 用命令過濾MySQL慢查詢日誌MySql
- 過濾
- DRF之過濾排序分頁異常處理排序
- mvc原始碼解讀(13)-MVC四大過濾器之ResultFilterMVC原始碼過濾器Filter
- Mysql 分組排序的sql寫法MySql排序
- MySQL 分組後取最新記錄MySql
- Oracle和MySQL分組查詢GROUP BYOracleMySql
- mysql與oracle的分組函式MySqlOracle函式
- 《MySQL 入門教程》第 08 篇 過濾條件MySql
- MySQL全面瓦解7:查詢的過濾條件MySql
- [MYSQL-8]用萬用字元進行過濾MySql字元
- filter過濾Filter
- 過濾器過濾器
- MySQL學習記錄--分組與聚集MySql
- Django(67)drf搜尋過濾和排序過濾Django排序
- mysql 分組取每個組的前幾名的問題MySql