mysql group by 對多個欄位進行分組
在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來獲取資料表中以分組欄位為依據的統計資料。比如有一個學生選課表,表結構如下:
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
我們想統計每門課程有多少個學生報名,應用如下SQL:
SELECT Subject, Count(*)
FROM Subject_Selection
GROUP BY Subject
得到如下結果:
Subject Count
------------------------------
ITB001 5
MKB114 2
因為表裡記錄了有5個學生選擇ITB001,2個學生選擇了MKB114。
產生這個結果的原因是:
GROUP BY X意思是將所有具有相同X欄位值的記錄放到一個分組裡。
那麼GROUP BY X, Y呢?
GROUP BY X, Y意思是將所有具有相同X欄位值和Y欄位值的記錄放到一個分組裡。
我們下面再接著要求統計出每門學科每個學期有多少人選擇,應用如下SQL:
SELECT Subject, Semester, Count(*)
FROM Subject_Selection
GROUP BY Subject, Semester
上面SQL的意思是,對Subject_Selection表中的資料進行分組,將具有相同Subject和Semester欄位值的記錄放到同一個分組裡去, 然後對每個分組中的資料應用聚合函式(COUNT,SUM, AVG,etc)。
得到的結果是:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
從表中的記錄我們可以看出這個分組結果是正確的有3個學生在第一學期選擇了ITB001, 2個學生在第二學期選擇了ITB001,還有兩個學生在第一學期選擇了MKB114, 沒人在第二學期選擇MKB114。
相關推薦
MYSQL GROUP BY 對多個欄位進行分組
在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來獲取資料表中以分組欄位為依據的統計資料。比如有一個學生選課表,表結構如下: Table: Subject_Selection Subject Semester Attendee -------
mysql group by 對多個欄位進行分組
在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來獲取資料表中以分組欄位為依據的統計資料。比如有一個學生選課表,表結構如下: Table: Subject_Selection Subject Semester Att
mysql group by 對多個字段進行分組
進行 head https 所有 sele 依據 字段 聚合函數 計數 轉載自:https://blog.csdn.net/xx_star1204/article/details/72884983 在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來
對多個欄位進行排序
最近在學習xsl,其中也遇到了不少問題,比如<xsl:sort>對多個欄位排序,因為w3school上面的內容很簡單,所以沒有提及這個 參考了兩個網址: http://www.runoob.com/xsl/xsl-tutorial.html http://www
elasticsearch系列-ES對多個欄位聚合,select A,B,COUNT(*) from table group by A,B
ES對多個欄位聚合,select A,B,COUNT(*)from table group by A,B 假設有下表 NAME SEX PROF 李誠 男 副教授 張旭 男 講師 王萍 女 助教 劉冰
mysql一張表多個欄位關聯另一張表查詢
如下:一張訂單表多個欄位關聯使用者表: 1.連結串列查詢 SELECT cu.id AS 'id',cu.version AS 'version',cu.cid AS 'cid',cu.uid AS 'uid',cu.shopName AS 'shopName',cu.address AS 'addre
【mysql】sql刪除多個欄位重複資料有主鍵和沒主鍵解決方法
table user name age nub 張三 12 23 張三 12 23 張三 12 23 李四 13 21 李四 13 21 王五 11 25
order by後多個欄位的排序
預設的排序方式是ASC升序 ORDER BY 多個欄位之間用英文逗號隔開,其實在很多場景下都是結合者GROUP BY使用。 舉一個例子 1、create_date用升序, up_votes降
T-SQL對多個欄位去重並計數
定義和用法可以一同使用 DISTINCT 和 COUNT 關鍵詞,來計算非重複結果的數目。語法SELECT COUNT(DISTINCT column(s)) FROM table例子注意:下面的例子僅
怎樣對多個欄位去重並計數?
Distinct可以和Count 一起使用,去重並計數: COUNT({ DISTINCT expression}) 但是一起使用時,後面不能有多個欄位: //不允許的寫法:select count(distinct col1 , col2 , col3 ,......
group by多個欄位
首先group by 的簡單說明: group by 一般和聚合函式一起使用才有意義,比如 count sum avg等,使用group by的兩個要素: (1) 出現在select後面的欄位 要麼是是聚合函式中的,要麼就是group by 中的. (2)
group by 多個欄位
首先group by 的簡單說明: group by 一般和聚合函式一起使用才有意義,比如 count sum avg等,使用group by的兩個要素: (1) 出現在select後面的欄位 要麼是是聚合函式中的,要麼就是group by 中的. (2) 要篩選結果 可以先使用where
linq/EF/lambda Group by/Order by 多個欄位詳細用法
1)單個欄位Group by: //a.Key型別與a.Province欄位型別一樣 .GroupBy(a => a.Province).Select(a => a.Key).ToList(); 2)多個欄位Group by: //此時返回的資料列表需要
mysql order by多個欄位排序
MySql Order By 多個欄位 排序規則比如:如要根據ConfigID和MarketID來排序有如下語句:SELECT * FROM TABLE ORDER BY ConfigID, MarketID DESC;那麼結果:分析:其實這個語句等同於:先按照ConfigI
hive:(group by, having;order by)的使用;group by+多個欄位,以及wiki說的group by兩種使用限制驗證
hive> select * from app_data_stats_historical where os='1' group by dt limit 100; 出現結果如下: 2014-01-01 2014-01-06 ...... 2014-02-07 2014
mysql和oracle查詢出的一條結果中的多個欄位拼接
1,mysql concat('a','b','c')和concat_ws('a','b','c')的區別:前者如果有某個值為空,結果為空;後者如果有某個值為空,可以忽略這個控制 SELECT concat_ws('',FORE_TWO,THIRD_POSITION,FOURTH_POSIT
MySQL中插入多個欄位的方法
在開發過程中,很多時候,根據需求,我們需要重新在表中新增幾個欄位。 在本地測試成功後,我們需要將自己的sql語句,提交到SVN,在版本升級的時候對現網上的資料庫表進行更新。 那麼如何寫插入欄位的sql語句呢?下面這個例子可以做一個簡單地示例: alter table ip_doma
mysql正則表示式,實現多個欄位匹配多個like模糊查詢
現在有這麼一個需求 一個questions表,欄位有題目(TestSubject),選項(AnswerA,AnswerB,AnswerC,AnswerD,AnswerE) 要求欄位不包含png,jpg,jpeg,gif 正常情況下會這麼寫 select * from questions
mysql建立表多個欄位的唯一約束
mysql中有些表有時需要做一些欄位的唯一約束,當然你也可以在insert前判斷有無的方式來防止重複,如果不想額外增加程式碼來更靈活的實現一些欄位的唯一約束,mysql提供了兩種方式: 1.unique key alter table xx add unique ke
MySQL資料庫查詢多個欄位值全部相同的記錄
資料庫中使用者表,資料從第三方系統匯入,由於一些垃圾資料,存在使用者名稱和密碼都相同的賬戶,造成介面上一些問題,SQL語句如下: select User_Account,User_Pwd,COUNT(