mysql选择年份,其中值来自上一列

标签 mysql

我有一张包含日期和温度的表格。通过以下查询,我可以显示一个表格,其中包含一个月中每一天的最高温度。

SELECT day(data),
    max(if(month(data)='01',Tmax,null)) as maxgen,
    max(if(month(data)='02',Tmax,null)) as maxfeb,
    - the same for each month -
    from estacio 
    where data between '1980-01-01' and '2013-12-31' 
    group by day(data)

我想要的是找到这个 maxtemp 发生的年份,并在 maxtemp 旁边显示它。 我试过的是创建一个子查询来查找每个 maxtemp 的年份,但我不知道如何引用上一列中的 maxtemp。

编辑:这就是我要找的。

Day Gen     Feb     Mar      ...   Dec
1   62 1966 62 2012 59 1972  ...   64 2006
2   53 1972 52 1983 61 2004  ...   60 1998

...

31  58 2013         74 1998  ...   57 1965

最佳答案

您应该使用以下查询:

查询 1

SELECT day,max(Temp),year(Date)
FROM  estacio    
GROUP BY day(data),year(Date);

对于您可以使用以下查询的月份:

查询 2

SELECT day,max(Temp),month(Date),year(Date)
FROM  estacio    
GROUP BY day(data),Month(Date);

关于mysql选择年份,其中值来自上一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26034998/

相关文章:

MySQL 查询 - 出了什么问题?

mysql - MySQL 中何时使用单引号、双引号和反引号

MySQL列操作废话

c# - 在 ASP.NET 4.5 中将 LINQ 与 MySql 结合使用

mysql - 何时在数据库中使用一对一表

mysql - 中间 SQL 表 : What for?

mysql - json_unquote 和 extract 给出 null

MySQL 周数和新年

PHP OOP 和 MySQLi 连接 = fatal error :调用未定义的方法 mysqli::arrayQuery()

mysql - 使用子查询更新表在 mysql 上有效,但在 oracle 上出错