我怎样才能通过一个查询
从下表中检索以下数据这是我到目前为止的代码。问题在于上面的数字3。如果1,2必须仍然有效,我怎样才能得到3号工作。
**The result must look like this.**
+-----------+--------------------+----------------+
| StartTime | StartAddress | StopAddress |
+-----------+--------------------+----------------+
| 08:00:00 | 26 Riverside Drive | Paterson |
+-----------+--------------------+----------------
**Existing Code to modify.**
SELECT
MIN(SamplingStart) AS StartTime,
StartAddress AS StartAddress,
StopAddress AS StopAddress
FROM table1;
****table1****
+---------------+--------------------+--------------------+
| SamplingStart | StartAddress | StopAddress |
+---------------+--------------------+--------------------+
| 08:00:00 | 26 Riverside Drive | 70 Piet Retief |
| 09:00:00 | 10 Glen Drive | 16 Olga Street |
| 10:00:00 | 66 Bremerhof | 26 Bluewater Drive |
| 11:00:00 | 7 New Street | Walker Drive |
| 13:00:00 | Goodwood Street | Blouberg |
| 15:00:00 | Marine Drive | William Moffet |
| 18:00:00 | Jumanji | Paterson |
+---------------+--------------------+--------------------
答案 0 :(得分:1)
您可以使用条件聚合:
SELECT MIN(SamplingStart) AS StartTime,
MAX(CASE WHEN SamplingStart = StartTime THEN StartAddress END) AS StartAddress,
MAX(CASE WHEN SamplingStart = EndTime THEN StopAddress END) AS StopAddress
FROM table1 t1 CROSS JOIN
(SELECT MIN(SamplingStart) AS StartTime, MAX(SamplingStart) AS ENDTime
FROM table1
) tt
答案 1 :(得分:0)
我会这样做(我知道这不仅仅是一个查询,而是......):
SELECT
MIN(SamplingStart) AS StartTime,
StartAddress AS StartAddress,
(select StopAddress from table1 order by SamplingStart desc limit 0,1) as StopAddress
FROM table1 ;