case-whens-fix
All checks were successful
Deploy on push / deploy (push) Successful in 1m21s

This commit is contained in:
Untone 2024-11-01 14:07:10 +03:00
parent 3247a3674f
commit 8ad00f0fa5

View File

@ -43,21 +43,28 @@ def query_with_stat(info):
stats_subquery = ( stats_subquery = (
select( select(
Reaction.shout, Reaction.shout,
func.count(case([(Reaction.kind == ReactionKind.COMMENT.value, 1)], else_=None)).label( func.count(
"comments_count"
),
func.sum(
case( case(
[ (Reaction.kind == ReactionKind.COMMENT.value, 1),
else_=None,
)
).label("comments_count"),
func.coalesce(
func.sum(
case(
(Reaction.kind == ReactionKind.LIKE.value, 1), (Reaction.kind == ReactionKind.LIKE.value, 1),
(Reaction.kind == ReactionKind.DISLIKE.value, -1), (Reaction.kind == ReactionKind.DISLIKE.value, -1),
], else_=0,
else_=0, )
) ),
0,
).label("rating"), ).label("rating"),
func.max(case([(Reaction.reply_to.is_(None), Reaction.created_at)], else_=None)).label( func.max(
"last_reacted_at" case(
), (Reaction.reply_to.is_(None), Reaction.created_at),
else_=None,
)
).label("last_reacted_at"),
) )
.where(Reaction.deleted_at.is_(None)) .where(Reaction.deleted_at.is_(None))
.group_by(Reaction.shout) .group_by(Reaction.shout)