Dato che non hai menzionato l'RDBMS che stai utilizzando, ecco una query che funzionerà su quasi tutti 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
USCITA
╔══════╦════════════╗
║ USER ║ TOTALCOUNT ║
╠══════╬════════════╣
║ Bob ║ 2 ║
║ John ║ 2 ║
║ Paul ║ 0 ║
╚══════╩════════════╝