0
我有以下表格:SQL - 選擇不同的計數
User
-------------------
id BIGINT
name text
Session
-------------------
id BIGINT
username text
last_login datetime
,並希望得到的用戶總數,並且具有與今天最後一個登錄會話的用戶的數量。我如何建模查詢?
我有以下表格:SQL - 選擇不同的計數
User
-------------------
id BIGINT
name text
Session
-------------------
id BIGINT
username text
last_login datetime
,並希望得到的用戶總數,並且具有與今天最後一個登錄會話的用戶的數量。我如何建模查詢?
讓我假設你修復了會話表有userId
而不是userName
。那麼你的答案取決於數據庫。總的想法是這樣的:
select count(distinct u.id) as user_count, -- including those with no sessions
sum(case when cast(last_login as date) = CURRENT_DATE
from users u left join
sessions s
on u.id = s.userId ;
這是邏輯的草圖。從日期/時間值中刪除時間組件因數據庫而異。表示當前日期的方式因數據庫而異。
它的工作原理!謝謝! – Desiderantes
在會話表中具有user_id列而不是用戶名。 – jarlh
用您正在使用的數據庫標記您的問題。 –
我沒有設計這些表,我不能修改它們 – Desiderantes