我希望我可以将select查询的某个部分写为参考,但我无法找出解决此问题的方法。 我有一个有几行的表,其中重要的四行是
ID - Arrival_Date - Type - Total_Letters_Received
1 - '2014-09-26' - A - 3
我想要的是:
Year - Type - Total_Letters_Received
2014 - A - 27
2014 - B - 33
2012 - A - 21
即。每一行显示该特定类型的那一年收到的年份,类型和总信件总数。
现在我很困惑如何获取原始表中的年份范围,然后如何进行此选择查询。请帮助这方面
答案 0 :(得分:2)
您只需要在日期的年份部分使用sum()
聚合函数和组。
如果在MySQL上使用year()
函数:
select
year(Arrival_Date) as Year,
Type,
sum(Total_Letters_Received) as Total_Letters_Received
from
your_table
group by
year(Arrival_Date), Type
如果使用SQLite3,请使用strftime()
函数:
select
strftime("%Y", Arrival_Date) as Year,
Type,
sum(Total_Letters_Received) as Total_Letters_Received
from
your_table
group by
strftime("%Y", Arrival_Date), Type
将来你可能想用你实际使用的特定数据库而不是多个不同的数据标记你的问题,除非你需要答案来处理所有问题(如果是这样的话,那么表明这样做可能是一个好主意)在问题中避免混淆)。
答案 1 :(得分:0)
您可以使用Arrival_Date
功能从year
获取年份,您可以使用group by
和sum
汇总返回Total_Letters_Received
每个Year
和Type
:
select
year(Arrival_Date) as [Year],
Type,
sum(Total_Letters_Received) as Total_Letters_Received
from YourTableName
group by
year(Arrival_Date),
Type