use*_*525 0 sql t-sql sql-server
我有这个SQL工作正常
SELECT COUNT(*) AS total, e.FirstName, e.LastName
FROM [Messages] AS m
INNER JOIN Employees AS e ON m.SenderId = e.UserId
GROUP BY e.EmployeeId, e.FirstName, e.LastName
Run Code Online (Sandbox Code Playgroud)
但我希望还有完整的未读消息作为列.
我怎样才能在SQL中实现这一点?
SELECT
COUNT(*) AS total,
COUNT(where m.isRead = false) AS totalUnreadMessages,
e.FirstName, e.LastName
FROM
[Messages] AS m
INNER JOIN
Employees AS e ON m.SenderId = e.UserId
GROUP BY
e.EmployeeId, e.FirstName, e.LastName
Run Code Online (Sandbox Code Playgroud)
你几乎在那里,使用case表达式来进行条件计数:
SELECT Count(*) as total,Count(case when m.isRead = false then 1 end) as totalUnreadMessage,
e.FirstName,e.LastName
FROM [Messages] as m
inner join Employees as e on m.SenderId=e.UserId
group by e.EmployeeId, e.FirstName,e.LastName
Run Code Online (Sandbox Code Playgroud)