![](/img/trans.png)
[英]Mysql:selects all rows with a starting date value from within the last 30 days
[英]MySQL - How to select rows with the latest time for each date within the last 30 days from now
想象一個帶有字段“ datetime ”的表。 示例行:
我需要從現在開始的最后30天之內從粗體中得到*。
換句話說,過去30天內具有最大日期的行。
假設每天至少有一行,每種情況下總共30行...
任何幫助深表感謝。
您可以group by
日期時間的日期部分進行group by
並獲取每天的最大值。
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
要從表中獲取此類行的所有字段,請使用
select * from tablename where `datetime` in (
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)
從your_table中選擇*,其中sysdate和sysdate-30之間的日期時間
vkp的答案基本上是正確的,盡管不需要子查詢從中選擇最終結果-您可以將其他列直接放入查詢中,直到這樣:
select *, max(datetime)
from tablename
where datetime >= date(now())-interval '30' day
group by date(datetime);
嗯,這也適用於加入。
為了更精確地實現目標,我要做的另一件事是:
max(time(datetime))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.