mysql - 基于mySql中列值的一部分分组

标签 mysql sql database

我有一个mySql表的调用细节。详细信息表有一个列调用日期,它的日期类似于 2015-02-01。同一日期可以有多个行。

我想找出一年中每个月它包含多少行COUNT()

例如,

'568', '192.168.1.100', '790', '1.00', '2014-11-14'    
'569', '192.168.1.100', '780', '1.00', '2014-11-14'  
'699', '192.168.1.100', '780', '1.00', '2014-11-16'
'767', '192.168.1.102', '780', '1.00', '2014-12-15'   
'768', '192.168.1.102', '780', '1.00', '2014-12-15'

这应该像这样给出 COUNT:

 '2014-11-' as 3
 '2014-12-' as 2

我如何使用 sql 选择查询来做到这一点。

最佳答案

Select DATE_FORMAT(My_Call_Date_Field, '%Y-%m') as MyYearAndMonth, Count(*) as MyCount
From My_Call_Details_Table Group By  DATE_FORMAT(My_Call_Date_Field, '%Y-%m')

您还可以使用 CAST function of MySql .

Select substr(convert(My_Call_Date_Field, CHAR), 1, 7) as MyYearAndMonth, Count(*) From My_Call_Details_Table Group By substr(convert(My_Call_Date_Field, CHAR), 1, 7) Order By substr(convert(My_Call_Date_Field, CHAR), 1, 7) 

作为对特定于您案例的其他信息的回应,如您对 Ed King 先前回答的评论中所见:这里是:

 SELECT DATE_FORMAT(detailtable.date, '%Y-%m') , AVG(detailtable.loadstate) as "load",count(detailtable.loadstate) as "count" from ruby_snmp.detailtable where ipaddtress='192.168.1.102' and date LIKE '2014-12-%' GROUP BY DATE_FORMAT(detailtable.date, '%Y-%m')

关于mysql - 基于mySql中列值的一部分分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28145500/

相关文章:

mysql - 检查MySQL中列的第一个字母

php - 平均评分脚本

sql - 从大型 XML 数据创建 SQL 数据库表

php - Google Maps API 商店定位器问题

php PDO mysql - 行为查询

mysql - 最好使用什么 SQL 权限来满足最流行的 CMS 的要求

sql - 为什么选择比函数调用更快?

c# - 使用 SQL 具有不同日期的复合条目

database - 如何根据字段限制结果

mysql - 如何区分数据库表中的行?