【发布时间】:2023-04-10 02:58:02
【问题描述】:
我有一张投票表,如下所示:
id, type, scope, region, UserId, ItemId, updatedAt, createdAt
我正在尝试根据赞成票/总票数按百分比计算排名靠前的项目。
最后一点是我想要一个 WHERE 子句,用于在两个时间戳之间为 createdAt 投票。
我觉得查询获取统计信息是一件很正常的事情。但我不知道该怎么做。
我得到的最接近的是:
SELECT "Votes"."ItemId", count("Votes"."ItemId") tots, count("Votes"."type" = 'up') AS yes, count("Votes"."type" = 'down') AS NO
FROM "Votes"
WHERE "Votes"."ItemId" IN (
SELECT "Votes"."ItemId" FROM "Votes"
)
GROUP BY "Votes"."ItemId"
这与需求相去甚远。因此,为什么我会在这里得到一些帮助。很难在这类东西上找到好的 sql 资源。
【问题讨论】:
-
你用的是sql server还是mysql还是postgresql?
-
为什么不使用 1/-1 存储投票的上/下,以便更容易获得投票总和?只是一个侧面的想法。
-
我正在使用 postgresql 进行查询。
标签: sql database postgresql count postgresql-9.4