当前位置: 首页 > 知识库问答 >
问题:

最近5年得sql查询与分组依据?

莘绍元
2023-03-14

下面是我到目前为止所获得的查询,但是,我只需要得到最近5年的数据,这就得到了所有年份的数据。我尝试为sql语句添加top5,它似乎不起作用,它显示了一些错误。如何修改此查询以只获取最近5年的数据?

select (sum(X) + sum(Y)) as tot,some_date
from table where fkid = 1 
group by year order by year desc;

下面是我所期望的数据格式。

年度合计
552,074.78 2012-01-01 466,283.62 2011-01-01 640,813.37 2010-01-01 721,182.28 2009-01-01 719,676.05 2008-01-01

共有1个答案

莘康裕
2023-03-14

您的查询的问题很容易(假设这是唯一的问题)。year是保留字,因此用双引号环绕:

select (sum(X) + sum(Y)) as tot, "year"
from table
where fkid = 1 
group by "year"
order by "year" desc;

得到最后五年是另一回事。基于列,您可以执行以下操作:

select (sum(X) + sum(Y)) as tot, "year"
from table
where fkid = 1 and year >= year(current timestamp) - 5
group by "year"
order by "year" desc;

或者,您实际上可能有另一列,该列有一个日期时间,您可以使用它来代替“year”

select (sum(X) + sum(Y)) as tot, year(dt) as "year"
from table
where fkid = 1 and dt >= CURRENT DATE - 5 years and dt <= CURRENT DATE
group by year(dt)
order by year(dt) desc;
 类似资料:
  • 问题内容: 我在为MySQL编写SQL查询时遇到一些问题。我有一个具有以下结构的表: 我想创建一个查询,该查询从表中提取以下信息: 查询结果应如下所示: 当然,每个唯一的“ id”具有更多行。 我已经尝试过一些查询,例如 这将返回正确的结果,但是我必须使用“ pass”的其他可能值(最多7个)来扩展它 我尝试在AVG中使用嵌套的SELECT,但这没有用,因为我没有弄清楚如何正确地将其限制为当前的’

  • 问题内容: 我试图弄清楚如何编写一个MySQL查询,该查询将返回日期最近的3个事件。 这是我的桌子: 因此,查询结果应为ID的1,2,5,因为它们是与当前日期相比最接近的ID。 编辑: 查询应该只找到将来的事件。 问题答案: 这意味着1天前的事件与将来1天的事件一样接近。如果您只想要尚未发生的事件,请执行

  • 问题内容: 我有以下SQL: 输出如下: 我希望能够仅获取一个代码并获得最近的距离。所以我希望它返回这个: 我最初有这样的东西: 如果我不想获得与最小距离相关联的正确位置,则最小值显示效果很好。如何获取最小距离(和距离)以及正确的位置(取决于表格中插入内容的顺序,有时您可能会得到纽约距离,但夏洛特位于“位置”)。 问题答案: 为了获得正确的关联位置,您需要加入一个子选择,该子选择在外部主表中的距离

  • 问题内容: 我有这张表 language_id是指记录所用的语言。我想做的是检索 每个language_id中 最近的五个记录(ORDER BY time_posted DESC LIMIT 5)的列表。我可以使用许多不同的SQL查询在PHP中循环执行此操作,但我觉得有一种更简单的方法。 我必须得到一本有关SQL的书,哈哈。 谢谢。 问题答案: 这是我在MySQL中解决此“每组前N个”类型的查询的

  • 问题内容: 我对以下2条SQL有疑问: SQL小提琴在这里 在执行之前,我认为案例部分应该是,它将返回。 但是现在,我想知道为什么第二个SQL会返回1 问题答案: 我将其作为答案发布,因为它来自: 一些人假设除非优先级规则另有规定,否则谓词将从左到右进行评估,并且在可能的情况下会发生短路。换句话说,如果第一个谓词属性类型=’INT’的评估结果为false,则SQL Server将评估第二个谓词CA

  • 我希望请求一个dynamodb表,但我不知道如何使用Python2.7SDK boto3执行GROUPBY和ORDERBY。 我读了一遍又一遍的aws留档和大多数堆栈主题,但我没有找到明确的答案,因为我的请求相当复杂。 我将从我的表中获取所有项目,这些项目通过“源”具有“permaname”组,并且我将通过在DESC上创建_获得结果顺序。 这就是我如何做我的请求我现在的简单请求: 我希望有人知道答