从单个表中选择统计数据

时间:2015-03-12 21:21:22

标签: mysql sql sqlite

我希望我可以将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

即。每一行显示该特定类型的那一年收到的年份,类型和总信件总数。

现在我很困惑如何获取原始表中的年份范围,然后如何进行此选择查询。请帮助这方面

2 个答案:

答案 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 bysum汇总返回Total_Letters_Received每个YearType

select
    year(Arrival_Date) as [Year],
    Type,
    sum(Total_Letters_Received) as Total_Letters_Received
from YourTableName
group by
    year(Arrival_Date),
    Type