返回图像上喜欢和不喜欢的数量

Aym*_*ein 3 mysql sql t-sql sql-server

我有表包含img_idlikes列.例:

 1  1
 1  1
 1  0
 2  0
 2  0
 3  1
Run Code Online (Sandbox Code Playgroud)

所以当运行这个查询时:

select img_id, count(likes)
from my_table
where likes = 1
group by img_id
Run Code Online (Sandbox Code Playgroud)

这是结果:

1  2
3  1
Run Code Online (Sandbox Code Playgroud)

我跑的时候:

select img_id, count(likes)
from my_table
where likes = 0
group by img_id
Run Code Online (Sandbox Code Playgroud)

结果是:

1 1
2 2
Run Code Online (Sandbox Code Playgroud)

我的问题是:

怎么能在query1中返回img_id 2 = 0,我的意思是img_id = 2也没有喜欢也在查询2 img_id = 3没有不喜欢所以我需要返回3 - > 0

Joh*_*Woo 9

在MySQL和SQL Server中,

SELECT  img_id,
        SUM(CASE WHEN likes = 1 THEN 1 ELSE 0 END) totalLikes,
        SUM(CASE WHEN likes = 0 THEN 1 ELSE 0 END) totalDisLikes
FROM    tableName
GROUP   BY img_ID
Run Code Online (Sandbox Code Playgroud)

或者只是在MySQL中,

SELECT  img_id,
        SUM(likes = 1) totalLikes,
        SUM(likes = 0) totalDisLikes
FROM    tableName
GROUP   BY img_ID
Run Code Online (Sandbox Code Playgroud)