我试图获取“分组”记录的第一个和最后一个记录。
更确切地说,我正在做这样的查询
更确切地说,我正在做这样的查询
SELECT MIN(low_price),MAX(high_price),open,close FROM symbols WHERE date BETWEEN(.. ..) GROUP BY YEARWEEK(date)
您要使用GROUP_CONCAT和SUBSTRING_INDEX:
SUBSTRING_INDEX( GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime),',1 ) AS open SUBSTRING_INDEX( GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC),1 ) AS close
这避免了昂贵的子查询,并且我发现对于这个特定问题通常更有效。
查看两个函数的手册页以了解其参数,或访问这篇包含如何做timeframe conversion in MySQL的示例的文章,以获得更多解释。