擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>sql = '''
SELECT DISTINCT
f.dm,
f1.price AS first,
f.maxp AS max,
f.minp AS min,
f2.price AS last
FROM (
SELECT datetime, strftime("%Y-%m-%d %H:%M",datetime) dm,
MIN(datetime) mindate, MAX(datetime) maxdate,
MIN(price) minp, MAX(price) maxp
FROM {c}
WHERE datetime >= ? AND datetime < ?
GROUP BY dm
) f
INNER JOIN {c} f1
ON f1.datetime = f.mindate
INNER JOIN {c} f2
ON f2.datetime = f.maxdate
'''.format(c = currency)
</code></pre>
<ul>
<li><code>dm</code>代表“日期分钟”。我们按日期分钟分组。在</li>
<li>有些行具有相同的<code>datetime</code>。<code>SELECT DISTINCT</code>
消除重复行。在</li>
<li>每组的第一个和最后一个价格出现在不同的行上。到
在同一行上联接它们需要联接。这就是
上面有两个内部接头。在</li>
</ul>