mysql - 从单个表中选择统计数据

标签 mysql sql sqlite

我希望我可以编写选择查询的某个部分作为引用,但我无法找出解决此问题的方法。 我有一个有几行的表,重要的四行是

ID - 到达日期 - 类型 - Total_Letters_Received 1 - '2014-09-26' - A - 3

等等等等...

我想要得到的是:

年份 - 类型 - Total_Letters_Received 2014 年 - A - 27 2014年-B-33 2012 - A - 21

即每行显示年份、类型以及该年收到的该特定类型的信件总数。

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

最佳答案

您只需使用 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

将来,您可能只想使用您实际使用的特定数据库来标记您的问题,而不是使用多个不同的数据库,除非您需要解决所有问题的答案(如果是这样,那么指出这样可能是个好主意以避免混淆)。

关于mysql - 从单个表中选择统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29020416/

相关文章:

sql - 逗号分隔值上的大查询连接

mysql 5.5.50 将一天的多个事件计算为一个

python - ImproperlyConfigured : SQLite 3. 需要 8.3 或更高版本(发现 3.7.17)

mysql - req.body 在 postman 上运行时说未定义

php - 替换枚举值

c# - 指定的转换无效 C# Entity Framework

java - 将数据数组保存到数据库

c++ - SQLite C++语句格式

php - 插入不同服务器上的 MySQL 数据库

php - 尝试在 pdf 上打印 2 列中的 2 个数组,但第一个数组打印正确,而第二个数组打印聚集的值,值彼此重叠