我正在尝试通过下面的查询计算特定字段上的记录数。

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 )


但是我得到的答案只返回一条记录,而其他数百条要显示

最佳答案

如果您使用varbnovarb,则唯一计数最大为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/

10-10 17:31