鑒于以下模式:
用戶
| 列 | 型別 | |
|---|---|---|
| id | ||
| Uuid | ||
| Uuid | Uuid | Uuid | 用戶名 | varchar(255)?
entries
| 列 | 型別 | |
|---|---|---|
| id | ||
| Uuid | ||
| Uuid | Uuid | Uuid |
| user_id | inserted_at | |
| 時間戳 | ||
我如何查詢一個在兩個日期之間每天創建n條目的用戶串列。例如,所有在9月1日和9月15日之間的10天內有條目的用戶。
注意,用戶可能在同一天有多個條目。我對兩個日期之間的不同日期的條目感興趣。
我正在使用Postgres,但我想這是一個更廣泛的sql問題。
uj5u.com熱心網友回復:
select u. id as user_id, max(u.username), count(e.id) as entries_count
from users u
inner join (
select max(id) as id, user_id, max(inserted_at) as inserted_at
from entries
group by user_id cast(inserted_at as date)
) e on u.id = e.user_id
where e. inserted_at between {start_date} and {end_date}
group by u.id having count(e.id)> X
{start_date} => 時間范圍的開始
{end_date} => 時間范圍的結束。X => 至少應該有多少個條目
。這里的時間范圍是包括的
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/307983.html
標籤:
下一篇:在Postgresql中,CStringGetTextDatum()和CStringGetDatum()有什么區別?
