我在sql表中有几个字段,包括名称,类型和日期。在日期,它存储为字符串" 2016-05-01"格式。我想计算按季度分组的名称出现次数。
通过这个,我的意思是这个名字可以在一个月内多次出现。我想计算名称出现在3个月(季度)组中的次数,并打印每行中的名称,计数和季度。
因此,例如,如果我有列名称,类型和日期并运行查询 它可能导致
Name Quarter Count
Ron | 1 | 62 |
Ron | 2 | 32 |
Ron | 3 | 45 |
Ron | 4 | 33 |
Tim | 1 | 62 |
Tim | 3 | 62 |
等等。感谢
答案 0 :(得分:3)
假设my_date_column是一个日期 你可以使用quarter()
select Name, QUARTER(my_date_column), count(*)
frpm my_table
group by name, QUARTER(my_date_column)
;
否则你应该在日期转换字符串
用于转换您可以使用的字符串
str_to_date('2016-09-20', '%Y-%m-%d')
select Name, QUARTER(str_to_date(my_strdate_column, '%Y-%m-%d')), count(*)
frpm my_table
group by name, QUARTER(str_to_date(my_strdate_column, '%Y-%m-%d'))
;