【发布时间】:2018-09-17 15:24:02
【问题描述】:
我有这个问题:
SELECT
(SELECT COUNT(media_id) FROM likes WHERE like_state = true AND media_id = ?) AS likes,
(SELECT COUNT(media_id) FROM likes WHERE like_state = false AND media_id = ?) AS dislikes,
(SELECT media_views FROM media_thumbnail WHERE media_id = ?) AS views;
它工作正常,但我不确定这是否是最好的方法。有什么建议吗?
我认为这不需要任何解释,但是...它计算有多少喜欢或不喜欢在 like_state(true = 喜欢,false = 不喜欢)的函数中,并返回视图相关视频的计数。
【问题讨论】:
-
您能对该查询运行解释分析吗?
-
在什么意义上“最好的方式”?此查询是否有任何问题,例如运行速度太慢?
-
不,我不只是想知道是否有其他方法。什么是解释分析?
-
显示数据类型和约束的 Postgres 版本和表定义可能是相关的。
标签: sql postgresql count cross-join