GROUP BY
您可以利用 MySQL扩展的非标准行为并执行
SELECT DATE(date_quotation) date_q, value
FROM
(
SELECT value, date_quotation
FROM quotation
WHERE date_quotation >= CURDATE() - INTERVAL 30 DAY
AND date_quotation < CURDATE() + INTERVAL 1 DAY
ORDER BY date_quotation DESC
) q
GROUP BY DATE(date_quotation)
或者您可以通过选择每天的最大值date_quotation
(假设没有重复)来按书进行操作,然后重新加入以quotation
获取value
SELECT date_q, value
FROM
(
SELECT DATE(date_quotation) date_q, MAX(date_quotation) date_quotation
FROM quotation
WHERE date_quotation >= CURDATE() - INTERVAL 30 DAY
AND date_quotation < CURDATE() + INTERVAL 1 DAY
GROUP BY DATE(date_quotation)
) t JOIN quotation q
ON t.date_quotation = q.date_quotation
注意: 这两个查询都使用索引友好的方式来过滤日期期间。确保您在date_quotation
列上有索引。
这是SQLFiddle演示