[英]SQL select and date ranges (group by?)
你好? 我通過 SQL select 有以下數據
+-----------------------------------------------------------+
| Name DateStart DateEnd |
+-----------------------------------------------------------+
| St Essai 2015-10-20 08:15:00 2015-10-20 10:15:00 |
| St Essai 2015-10-20 10:30:00 2015-10-20 12:30:00 |
| St Essai 2015-10-20 13:30:00 2015-10-20 15:30:00 |
| St Essai 2015-10-20 15:45:00 2015-10-20 17:45:00 |
| St Essai 2015-10-21 08:15:00 2015-10-21 10:15:00 |
| St Essai 2015-10-21 10:30:00 2015-10-21 12:30:00 |
| St Essai 2015-10-21 13:30:00 2015-10-21 15:30:00 |
| St Essai 2015-10-21 15:45:00 2015-10-21 17:45:00 |
+-----------------------------------------------------------+
正如你所看到的,我一天有 4 行。 我想要代替
+-----------------------------------------------------------+
| Name DateStart DateEnd |
+-----------------------------------------------------------+
| St Essai 2015-10-20 08:15:00 2015-10-20 17:45:00 |
| St Essai 2015-10-21 08:15:00 2015-10-21 17:45:00 |
+-----------------------------------------------------------+
第一行是NAME
,第二個DATE START
,最后一個DATE END
。
因此,而不是一天的 4 行,只有一個重新組合 4 個日期。
是否只有在有 4 行(代表一整天)的情況下才有可能。
非常感謝 !
SELECT NAME,
MIN(DATE) AS date_from,
MAX(DATE) AS date_to
FROM tablename
GROUP BY NAME;
按名稱分組並取最小值和最大值
select NAME, min(DATE_START), max(DATE_END) from thetable group by NAME, date(DATE_START)
嘗試這個
select name,min(date) as date_from, max(date) as date_to from table
group by name
給你。 我創建了一個看起來像你的表,並稍微復雜了一些數據只是為了更好地測試它。 想法是找到每天的最小和最大小時數並將它們連接到一行。
select minTable.minhour , maxTable.maxhour, maxTable.name
from (select min(startdate) as minhour, date(startdate) as aday, name from ATable
group by aday, name) minTable
join
(select max(enddate) as maxhour, date(enddate) as aday , name from ATable
group by aday, name) maxTable
on minTable.aday = maxTable.aday and minTable.name = maxTable.name
或更簡單的...
select min(startdate) , max(enddate), name from ATable
group by date(startdate), name
您只需要通過以下方式在您的組中添加date(datestart)
:
select name,
min(datestart) as datestart,
max(dateend) as dateend
from mytable
group by name,date(datestart);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.