ID(pri_key)、dt(タイムスタンプ)と使用量を列として持つ「測定」という表があります。 最小使用量または最大使用量は、複数回発生する可能性があります。私は、使用の最小値と最大値が昨日発生した最初のレコードを選択したいと思います。私はこのプロジェクトで忙しかったとき、それは、少なくとも私に前日からすべてのレコードを与えるだろう昨日からレコードでMINとMAX値が発生しました
+---------------------+-----------------+
| dt | usage |
+---------------------+-----------------+
| 2017-01-10 01:11:01 | 6 |
| 2017-01-10 01:55:01 | 6 |
| 2017-01-10 02:19:01 | 6 |
| 2017-01-10 03:11:02 | 6 |
| 2017-01-10 04:57:01 | 6 |
| 2017-01-11 08:22:02 | 6 |
| 2017-01-11 13:42:02 | 6 |
| 2017-01-11 17:52:01 | 2609 |
| 2017-01-11 23:06:01 | 6 |
| 2017-01-12 03:29:02 | 6 |
| 2017-01-12 04:17:02 | 6 |
| 2017-01-12 05:39:01 | 6 |
+---------------------+-----------------+
を昨日:
SELECT dt, usage FROM measurement as a,
(SELECT MIN(usage) as mini, MAX(usage) as maxi FROM measurement) as m
WHERE m.mini = a.usage OR m.maxi = a.usage AND
a.dt >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND DATE(a.dt) < DATE(NOW());
これは私に与える:私はこれまで持って
。今では、最低値と最高値のすべてのレコードを私に提供します。とにかく、私は初めての値をフィルタ処理しようとした「6」が発生して使用することにより発生した、値「2609」:
SELECT dt, usage FROM measurement as b,
(SELECT MIN(dt) as first, usage as us FROM measurement) as a,
(SELECT MIN(usage) as mini, MAX(usage) as maxi FROM measurement) as m
where m.mini = a.us or m.maxi = a.us and
a.first >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND DATE(a.first) < DATE(NOW());
は、しかし私に空のセットを提供します。私が探しています:
| 2017-01-11 08:22:02 | 6 |
| 2017-01-11 17:52:01 | 2609 |
@krishnpatel昨日から早い最小使用方法については
。 –