我正在尝试使用下面的查询来计算特定字段上的记录数。
SELECT COUNT(DISTINCT CASE WHEN seen='n' and reciever_id=1 THEN 'varb' ELSE 'novarb' END) AS count ,c.id, c.vmsg, c.sender_id, p.fname, p.lname, p.profile_pix, p.profile_id
FROM chats c LEFT JOIN profile p ON c.sender_id = p.profile_id
WHERE c.reciever_id = 1 AND c.id in (SELECT MAX(c.id) as id FROM chats c
GROUP BY c.sender_id )
但是我得到的答案只返回一条记录,而还有其他数百条记录要显示
最佳答案
如果您使用 varb
和 novarb
,则 dictinct 计数最多为 2,如果有 1,则意味着您只有一个条件
您可能需要计算 varb
条目的数量
SELECT COUNT(
CASE WHEN seen ='n' and reciever_id=1
THEN 'varb'
ELSE NULL
END) AS count ,c.id, c.vmsg, c.sender_id, p.fname, p.lname, p.profile_pix, p.profile_id
FROM chats c
LEFT JOIN profile p ON c.sender_id = p.profile_id
WHERE c.reciever_id = 1 AND c.id in (
SELECT MAX(c.id) as id FROM chats c
GROUP BY c.sender_id )
关于mysql - 对嵌套查询中的特定行进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43308526/