我正在对数据库中的帖子进行查询。如果帖子是对另一个帖子的响应,则它的parent_id
值大于零,否则为零。
要生成帖子报告,我在 SELECT 中使用以下内容,然后按用户分组。
SELECT
SUM(IF(parent_id = 0, 1, 0)) as 'NewPosts',
SUM(IF(parent_id > 0, 1,0)) as 'Responses',
COUNT(parent_id) as 'TotalPosts',
FROM posts
GROUP BY user
现在我需要添加一列来显示用户的自我反应。就像是...
SUM(IF(parent_id IN id, 1, 0)) as 'SelfResponses'
当然,我知道这是错误的,但我希望它能传达这个想法。
编辑:数据看起来像:
User Id parent_id
Henry 12 0
Henry 24 12
Henry 32 16
Joseph 16 0
所以在这种情况下,输出将是:
User NewPosts Responses TotalPosts SelfResponses
Henry 2 2 3 1
Joseph 1 0 1 0