Mysql的最小值和最大值“;速率“;每个月


Mysql minimum and maximum values of "rate" for each month

我有一个包含两个字段的表,其中一个字段表示";日期";输入为天/月/年;速率";

日期|利率

2005年1月24日| 1.9754
2005年1月26日| 1.3723

等等

所以,我喜欢找到"0"的最小值和最大值;速率";每年的每个月。我的查询只选择一行

选择DISTINCT DATE_FORMAT(日期,'%d-%m-%y')作为DATE,MIN(速率)作为r,MAX(速率)为mr FROM速率

这将获得每个月和年度的费率值

SELECT
    YEAR(date) AS thisYear,
    MONTH(date) AS thisMonth,
    MIN(rate) AS minRate,
    MAX(rate) AS maxRate
FROM rates
GROUP BY thisYear ASC, thisMonth ASC

如果你需要有出现最小值或最大值的单独日期,你需要在其中进行一些额外的分组,但以上内容应该足以回答你最初的问题。

要获得"速率";对于一年中的每个月,您可以按如下方式修改查询:

SELECT DATE_FORMAT(date, '%m-%Y') as Month_Year, MIN(rate) as Min_Rate, MAX(rate) as Max_Rate
FROM rates
GROUP BY DATE_FORMAT(date, '%m-%Y');

GROUP BY子句根据日期字段的月份和年份对费率表中的行进行分组。MINMAX函数然后计算每个组的速率字段的最小值和最大值。DATE_FORMAT函数用于将日期字段格式化为格式为%m-%Y的字符串,其中%m是月份(01-12),%Y是年份(例如2005)。

此查询将为费率表中每个唯一的月份和年份返回一行结果集,以及该月份和年份的费率字段的最小值和最大值。