我正在努力處理 SQL 查詢。
我的查詢看起來像這樣:
Select
Count(user-id),
sum(distinct(date),
Sum(characters-posted)
From (
Select
Date,
User-Id,
Session-Id,
Characters—posted,
Variant-id
From database-name
Where date between ‘2022-09-01’ and ‘2022-09-31’)
這作業正常。但是,“郵件串列”表中還有另一個欄位,只有 0 或 1。我只想從他們加入郵件串列之日起獲取成員的活動,即使他們隨后離開串列,所以不能只做“where mailing-list=1”。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
由于它是常規日期格式,對日期求和似乎并不常見,因此不清楚什么對您有用。您是否要獲取活動日期的數量?至于你可能會問的最根本的問題。
至于您的底線問題,您似乎可能想在連接中使用 cte 或 subselect 。
your query...
from db_name dbn
inner join (select user_id, min(date) date from database_name
where mailing_list = 1 group by 1) start_date
on start_date.user_id = dbn.user_id
and start_date.date <= dbn.date
這樣,您只會從您的用戶第一次加入郵件串列時開始獲得活動。
但是我仍然認為您的最終查詢中有錯誤,請檢查一下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514698.html
