Eftersom du inte har nämnt RDBMS du använder, här är en fråga som fungerar på nästan alla RDBMS:
SELECT aa.User, COUNT(bb.User ) TotalCount
FROM (SELECT DISTINCT User FROM TableName) aa
LEFT JOIN
(
SELECT a.User
FROM TableName a
INNER JOIN
(
SELECT Date, MAX(Value) max_val
FROM TableName
GROUP BY Date
) b ON a.Date = b.Date AND
a.Value = b.max_val
) bb ON aa.User = bb.User
GROUP BY aa.User
OUTPUT
╔══════╦════════════╗
║ USER ║ TOTALCOUNT ║
╠══════╬════════════╣
║ Bob ║ 2 ║
║ John ║ 2 ║
║ Paul ║ 0 ║
╚══════╩════════════╝