简体   繁体   中英

MySQL query date ranges

I have googled but did not find anything related. I have a MySQL table like this:

+++++++++++++++++++++++++++++++
| roomID |    date    | price |
+++++++++++++++++++++++++++++++
|  1     | 2012-10-10 |   10  |
|  1     | 2012-10-11 |   10  |
|  1     | 2012-10-12 |   10  |
|  1     | 2012-10-13 |   12  |
|  2     | 2012-10-10 |   15  |
|  2     | 2012-10-11 |   15  |
|  2     | 2012-10-12 |   15  |
|  2     | 2012-10-13 |   16  |
|  2     | 2012-10-14 |   16  |
|  2     | 2012-10-15 |   16  |
+++++++++++++++++++++++++++++++

I need to get periods based on price and roomID:

++++++++++++++++++++++++++++++++++++++++++++
| roomID |    from    |    till    | price |
++++++++++++++++++++++++++++++++++++++++++++
|    1   | 2012-10-10 | 2012-10-12 |   10  |
|    1   | 2012-10-13 | 2012-10-13 |   12  |
|    2   | 2012-10-10 | 2012-10-12 |   15  |
|    2   | 2012-10-13 | 2012-10-15 |   16  |
++++++++++++++++++++++++++++++++++++++++++++

Thank you!

select roomid,
       min(date) as from,
       max(date) as till,
       price
from periods
group by price
order by price

You can try using the following query:

SELECT roomid, MIN(date) AS `from`, MAX(date) AS `till`, price
FROM tableName
GROUP BY price
ORDER BY price

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM