原文:https://www.cnblogs.com/Fooo/p/3435687.html
SQL語句統計每天、每月、每年的數據
1、每年 |
sql題 如何統計查詢一個月中每天的記錄
怎么寫啊?寫出來啊! 比如說要查2010年3月份每天的記錄
答案
select count(*),substr(t.date,1,10) from table t where t.date like '2010-03%' group by substr(t.date,1,10)
這里date的格式是YYYY-mm-dd hh:mm:ss
sql 數據分月統計,表中只有每天的數據,現在要求求一年中每個月的統計數據(一條sql)
SELECT
MONTH ( 那個日期的字段 ),
SUM( 需要統計的字段, 比如銷售額什么的 )
FROM
表
WHERE
YEAR ( 那個日期的字段 ) = 2010 -- 這里假設你要查 2010年的每月的統計。
GROUP BY
MONTH ( 那個日期的字段 )
用SELECT語句對數據進行統計匯總
用SELECT語句對數據進行統計匯總
集合函數(聚合函數,統計函數)
為了有效處理查詢得到的數據集合,SQL Server提供了一系列統計函數.
這些函數可以實現數據集合和匯總:
avg ([ALL|DISTINCT]列名) 求指定數字字段的平均值
sum ([ALL|DISTINCT]列名) 求指定數字字段的總和
max([ALL|DISTINCT]列名) 求指定數字字段中最大值
min ([ALL|DISTINCT]列名) 求指定數字字段中最小值
count([ALL|DISTINCT]列名) 求滿足條件記錄中指定字段不為空的記錄個數
count(*) 求滿足條件記錄總數
**********************************************************************************************
用GROUP BY子句對記錄分類統計匯總
格式:
GROUP BY 分組字段名列表[HAVING 條件表達式]
功能:按指定條件對指定字段依次分組進行統計匯總
注:
使用GROUP BY 的語句仍可用ORDER BY子句排序
但必須在GROUP BY之后可以使用別名但不允許對SELECT沒指定的列排序
HAVING子句是對分組統計后的查詢結果進行篩選.
使用GROUP BY 的select語句仍可用WHERE子句指定條件
**********************************************************************************************
說明:
Select 指定的字段必須包含且只含GROUP BY子句中指定的分組字段(可以為它指定別名),
其他必須是由集合函數組成的一個或多個計算列,統計函數中所使用的列不受限制.
GROUP BY子句中不允許使用字段或計算列的別名,可直接使用表達式.
GROUP BY子句指定表達式時,select指定的字段中可以不包括該表達式.
HAVING子句不允許使用別名
HAVING子句必須和GROUP BY一起使用,且設置的條件必須與GROUP BY 子句指定的分組字段有關