假設我有一張桌子
class UserModel(BaseModel):
id = Column(Integer, primary_key=True)
status = Column(
Enum(
"registered",
"confirmed",
"pending",
name="user_statuses",
)
)
我想查詢該表并獲取按狀態分組的用戶的 COUNT,如果沒有具有特定狀態的用戶,我仍然想回傳它但帶有0.
例如,假設我在資料庫中有以下用戶:
id status
1 confirmed
2 confirmed
3 registered
結果我想得到類似的東西:
status user_count
registered 1
confirmed 2
pending 0
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您必須在內部使用子查詢count()。如果你有一張status桌子(結果在這里):
select s.status, coalesce(u.user_count,0) as user_count
from status s left join
(select status,count(*) as user_count from users group by status) u on u.status = s.status
如果您沒有status表格(此處為結果):
select s.status, coalesce(u.user_count,0) as user_count
from (select unnest(array['registered','confirmed','pending']) as status) s left join
(select status,count(*) as user_count from users group by status) u on u.status = s.status
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/448986.html
標籤:Python sql PostgreSQL sqlalchemy
下一篇:在指定條件下計算轉化率
