由于您没有提到正在使用的RDBMS,因此以下查询将适用于 几乎所有 RDBMS:
SELECt aa.User, COUNT(bb.User ) TotalCountFROM (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
- SQLFiddle演示
输出
╔══════╦════════════╗║ USER ║ TOTALCOUNT ║╠══════╬════════════╣║ Bob ║ 2 ║║ John ║ 2 ║║ Paul ║ 0 ║╚══════╩════════════╝



